2.2 変更点および拡張機能
これらの項では、このリリースのOracle Database Gateway for DRDAに固有の変更点および拡張機能について説明します。
- 「リモート挿入行ソース」
リモート挿入行ソース機能を使用すると、OracleデータベースおよびOracle Databaseゲートウェイを介してローカルのOracleデータを処理する必要があるリモート挿入が可能になります。 この機能を使用するには、OracleデータベースおよびOracle Databaseゲートウェイのバージョンが12.2以上である必要があります。 - 「ゲートウェイ・パスワード暗号化ツール」
ゲートウェイ・パスワード暗号化ツール(g4drpwd
)は、異機種間サービスの一部である汎用機能に置き換えられました。 - 「結果セットとストアド・プロシージャ」
Oracle Database Gateway for DRDAは、結果セットを返すストアド・プロシージャをサポートします。
親トピック: リリース情報
2.2.1 リモート挿入行ソース
リモート挿入行ソース機能を使用すると、OracleデータベースおよびOracle Databaseゲートウェイを介してローカルのOracleデータを処理する必要があるリモート挿入が可能になります。 この機能を使用するには、OracleデータベースおよびOracle Databaseゲートウェイのバージョンが12.2以上である必要があります。
Oracle Database設計では、一部の分散文をデータベース・リンク・サイトで実行する必要があります。 ただし、特定の状況では、元のOracle Databaseからフェッチする必要があるこれらの問合せを実行するために必要なデータがあります。 同機種間接続では、リモートOracleデータベースがソースOracleデータベースをコールバックして、このようなデータを取得します。 ただし、異機種間接続では、これは実行できません。これは、外部データ・ストアが、問合せを発行したOracleインスタンスでのみ提供できるコールバック関数(データ)を問い合せる必要があることを意味します。 通常、これらの種類の文は、Oracle Databaseゲートウェイを介してサポートできるものではありません。
次のカテゴリのSQL文では、コールバックが発生します:
- Oracleデータベースの表を参照するサブ選択を含むDML。
- 元のOracleデータベースで実行する必要があるSQL関数または文を含む
DELETE
,INSERT
,UPDATE
またはSELECT... FOR UPDATE..."
SQL文。これらのSQL関数には、
USER
、USERENV
およびSYSDATE
が含まれ、元のOracleデータベースからのデータの選択が含まれます。 - Oracleデータベース内の表、およびリモート表の
LONG
またはLOB
列を含むSQL文。
リモート挿入行ソース機能を介して機能するリモートINSERT
文の例を次に示します:
INSERT INTO gateway_table@gateway_link select * from local_table;
親トピック: 変更および拡張機能
2.2.2 ゲートウェイ・パスワード暗号化ツール
ゲートウェイ・パスワード暗号化ツール(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章、「セキュリティに関する考慮事項」を参照してください。
親トピック: 変更および拡張機能
2.2.3 結果セットとストアド・プロシージャ
Oracle Database Gateway for DRDAは、結果セットを返すストアド・プロシージャをサポートします。
デフォルトでは、すべてのストアド・プロシージャおよび関数は、ユーザーに結果セットを返しません。 結果セットを有効にするには、初期化パラメータ・ファイルでHS_FDS_RESULTSET_SUPPORT
パラメータを設定します。
関連項目:
初期化パラメータ・ファイルおよびHS_FDS_RESULTSET_SUPPORT
パラメータの編集の詳細は、「初期化パラメータ」を参照してください。 Oracle以外のデータベースでの結果セットに対するOracleサポートの詳細は、「Oracle Database異機種間接続ユーザー・ガイド」を参照してください。
ノート:
HS_FDS_RESULTSET_SUPPORT
ゲートウェイ初期化パラメータを設定する場合は、既存のすべてのストアド・プロシージャに対してプロシージャ実行文の構文を変更する必要があります。そうしないと、エラーが発生します。
Oracle Database Gateway for DRDAを介して結果セットを含むストアド・プロシージャにアクセスすると、異機種間サービスの順次モードになります。 ゲートウェイは、手順の説明中に異機種間サービスに次の情報を返します:
- リモート・ストアド・プロシージャのすべての入力引数
- 出力引数はなし
- 参照カーソル・タイプの1つの出力引数(ストアド・プロシージャから戻される最初の結果セットに対応)
クライアント・プログラムは、仮想パッケージ関数DBMS_HS_RESULT_SET.GET_NEXT_RESULT_SET
を使用して、後続の結果セットの参照カーソルを取得する必要があります。 最後に返される結果セットは、プロシージャのout引数です。
結果セットへのアクセスの制限は次のとおりです:
- リモート・ストアド・プロシージャから戻された結果セットは、送信された順に取得される必要があります。
- ストアド・プロシージャを実行すると、データが完全に取得されたかどうかに関係なく、以前に実行されたストアド・プロシージャから戻された結果セットがすべてクローズされます。
次の例では、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
親トピック: 変更および拡張機能