2 リリース情報
次のセクションでは、Oracle Database Gateway for DRDAに固有のリリース情報について説明します。
製品セット
製品インストール・メディアには、次の製品コンポーネントが含まれています:
-
Oracle Database Gateway for DRDA、12cリリース2 (12.2)
-
Oracle Net、12cリリース2 (12.2)
変更点および拡張機能
以下のセクションでは、このリリースのゲートウェイに固有の変更と拡張について説明します:
リモート挿入Rowsource
リモート挿入行ソース機能を使用すると、ローカルOracleデータをOracleデータベースおよびOracle Databaseゲートウェイで処理する必要があるリモート挿入が可能になります。 この機能を使用するには、OracleデータベースとOracle Databaseゲートウェイをバージョン12.2以降にする必要があります。
Oracle Databaseデザインでは、データベース・リンク・サイトで分散文を実行する必要があります。 しかし、特定の状況では、これらの問合せを実行するために必要なデータがあります。このデータは、元のOracle Databaseからフェッチする必要があります。 同種の接続では、リモートOracleデータベースは、そのようなデータのソースOracleデータベースをコールバックします。 しかし、異種の接続では、これは実行可能ではありません。これは、外部データストアが、問合せを発行したOracleインスタンスによってのみ提供できるコールバック関数またはデータを問合せする必要があることを意味するためです。 一般的に、これらの種類の文は、Oracle Databaseゲートウェイでサポートできるものではありません。
次のカテゴリのSQL文では、コールバックが発生します:
-
Oracleデータベース内の表を参照するサブ選択付きDML。
-
DELETE
、INSERT
、UPDATE
または"SELECT... FOR UPDATE...
"元のOracleデータベースで実行する必要があるSQL関数または文を含むSQL文。これらのSQL関数には、
USER
、USERENV
、およびSYSDATE
が含まれます。元のOracleデータベースからのデータの選択を伴います。 -
Oracleデータベース内の表を含むSQL文、およびリモート表の
LONG
またはLOB
列。
リモート挿入rowsource機能を使用して動作するリモートINSERT
の例を次に示します:
INSERT INTO gateway_table@gateway_link select * from local_table;
ゲートウェイ・パスワード暗号化ツール
ゲートウェイ・パスワード暗号化ツール(g4drpwd
)は、異機種間サービスの一部である汎用機能に置き換えられました。 詳細については、「Oracle Database Gatewayインストールおよび構成ガイドfor IBM AIX on POWER Systems (64-Bit), Linux x86-64, Oracle Solaris on SPARC (64-Bit), Oracle Solaris on x86-64 (64-Bit)およびHP-UX Itanium」または「Oracle Database Gatewayインストールおよび構成ガイドfor Microsoft Windows」の第15章、"セキュリティに関する考慮事項"を参照してください。
結果セットとストアド・プロシージャ
Oracle Database Gateway for DRDAは、結果セットを返すストアド・プロシージャをサポートしています。 デフォルトでは、すべてのストアド・プロシージャおよびファンクションからユーザーに結果セットが戻されることはありません。 結果セットを使用可能にするには、初期化パラメータ・ファイルでHS_FDS_RESULTSET_SUPPORT
パラメータを設定します。
関連項目:
初期化パラメータ・ファイルとHS_FDS_RESULTSET_SUPPORT
パラメータの編集については、「初期化パラメータ」を参照してください。 Oracle以外のデータベースの結果セットに対するOracleサポートの詳細は、「Oracle Database異機種間接続ユーザーズ・ガイド」を参照してください。
注意:
HS_FDS_RESULTSET_SUPPORT
ゲートウェイ初期化パラメータを設定する場合は、既存のすべてのストアド・プロシージャのプロシージャexecute文の構文を変更するか、エラーが発生する必要があります。
Oracle Database Gateway for DRDAを使用して結果セットを含むストアド・プロシージャにアクセスすると、異機種間サービスの順次モードになります。 ゲートウェイは、プロシージャの説明の間、異機種間サービスに以下の情報を戻します:
-
リモート・ストアド・プロシージャのすべての入力引数
-
出力引数はなし
-
タイプがref cursorの1つの引数(ストアド・プロシージャから返される最初の結果セットに対応)
クライアント・プログラムは、仮想パッケージ関数DBMS_HS_RESULT_SET.GET_NEXT_RESULT_SET
を使用して、後続の結果セットの参照カーソルを取得する必要があります。 最後に返された結果セットは、プロシージャからの出力引数です。
結果セットへのアクセスの制限は次のとおりです:
-
リモート・ストアド・プロシージャによって返される結果セットは、ワイヤー上に置かれた順序で取得する必要があります。
-
ストアド・プロシージャの実行時に、以前に実行されたストアド・プロシージャによって返されたすべての結果セットは、データが完全に取得されたかどうかにかかわらず閉じられます。
次の例では、UDBストアド・プロシージャを実行して、UDBからEMP
およびDEPT
表の内容をフェッチします:
CREATE PROCEDURE REFCURPROC (IN STRIN VARCHAR(255), OUT STROUT VARCHAR(255) ) RESULT SETS 3 LANGUAGE SQL BEGIN DECLARE TEMP CHAR (20); DECLARE C1 CURSOR WITH RETURN TO CALLER FOR SELECT * FROM TKHOEMP; DECLARE C2 CURSOR WITH RETURN TO CALLER FOR SELECT * FROM TKHODEPT; OPEN C1; OPEN C2; SET STROUT = STRIN; END
既知の問題点
次の項に記載されている問題は、Oracle Database Gateway for DRDAに固有であり、この製品の今回のリリースに存在することが確認されています。 この問題に対する質問または関心がある場合は、Oracleサポート・サービスに連絡してください。
現在の問題のリストは、オンライン上で入手できます。 このオンラインの情報へのアクセスに関する情報は、Oracleサポート・サービスに連絡してください。
既知の制限事項
12cリリース2 (12.2)の製品には、次の制限事項があります。 将来のリリースでこれらの制限が変更される予定はありません。 アプリケーションを開発する際の情報や制限については、「アプリケーションの開発」を参照してください。
DB2の考慮事項
12c Release 2 (12.2)には次の考慮事項があります:
後処理されるSUBSTR関数
SUBSTR
関数は、z/OS用のDB2 UDBなど、DRDAサーバーと互換性のない方法でOracleデータベースとともに使用できます。 そのため、SUBSTR
関数は後処理されます。 ただし、「"ネイティブ・セマンティクス"」機能を使用して、サーバーで を処理できるようにすることは可能です。 詳細については、「アプリケーションの開発」を参照してください。
数値の文字列連結
DB2 Universal Databaseは数字の文字列連結をサポートしていません。 次に例を示します。
SELECT 2||2 FROM table@dblink
許可されていません。
GLOBAL_NAMES初期化パラメータ
GLOBAL_NAMES
がTRUE
に設定されている場>合、OracleデータベースのINIT.ORA
ファイルで、ゲートウェイに接続できるようにするには、異機種間サービス (HS) 初期化パラメータ、ゲートウェイ初期化パラメータ・ファイルのHS_DB_DOMAIN
を設定して、OracleデータベースのDB_DOMAIN
パラメータと一致させなければなりません。
DRDAパッケージとDB2に関する考慮事項
ゲートウェイは、文の実行にパッケージを使用します。 このパッケージは、ゲートウェイがターゲットDB2システムに初めて接続するときに暗黙的にバインドされます。 DB2システムに接続するユーザーIDに、パッケージをバインドするために必要な特権があることを確認してください。 詳細は、ご使用のプラットフォームに応じて「Oracle Database Gatewayインストールおよび構成ガイドfor IBM AIX on POWER Systems (64-Bit), Linux x86-64, Oracle Solaris on SPARC (64-Bit), Oracle Solaris on x86-64 (64-Bit)およびHP-UX Itanium」または「Oracle Database Gatewayインストールおよび構成ガイドfor Microsoft Windows」を参照してください。
日付計算
一般に、DB2 制限のため、次のタイプのSQL式の形式はゲートウェイで正しく機能しません:
date + number number + date date - number date1 - date2
DB2では、日付データ型での数値の加算または減算はできません。 日付と数値の加減算(date + number, number + date, date - number)
形式は、拒否されたDB2に送信されます。
また、DB2は日付の減算を一貫して実行しません。 2つの日付(date1 - date2)
を減算すると、DB2の日付減算の解釈が異なるため、結果はサーバーによって異なります。
注意:
日付計算の問題が解決されるまで、すべてのゲートウェイSQL式で日付算術式を使用しないでください。
ストアド・プロシージャおよびトランザクション整合性
IBM DB2では、ストアド・プロシージャ用として戻り時にコミット(Commit on Return)という機能が導入されています。 この機能により、DB2では、ストアド・プロシージャの成功後に自動コミットを実行できます。 この機能は、プロシージャの作成時に有効化されます。 データの整合性を確保するため、Oracle Database Gateway for DRDAは異種環境でこの機能をサポートしていません。 この機能が有効になっているストアド・プロシージャをゲートウェイ経由で呼び出そうとすると、ゲートウェイはORA-28526
またはPLS-00201
(識別子を宣言する必要があります)というエラーを返します。
SQLの制限
Oracle Database Gateway for DRDAのSQLの制限事項については、次のセクションで説明します:
Oracleバインド変数
Oracleバインド変数は、ゲートウェイでの使用時にSQLパラメータ・マーカーになります。 したがって、バインド変数は、SQLパラメータ・マーカーと同じ制限を受けます。
たとえば、次のような文は許可されません。
WHERE :x IS NULL WHERE :x = :y