機械翻訳について

2.2 変更点および拡張機能

これらの項では、このリリースの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関数には、USERUSERENVおよび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