機械翻訳について

2.5 既知の制限事項

このトピックでは、Oracle Database Gateway for DRDAを使用した既知の制限について説明します。

次の制限が、12cリリース2 (12.2)の製品に存在することがわかっています。 将来のリリースでこれらの制限が変更される予定はありません。 アプリケーションを開発する際の情報または制限については、「アプリケーションの開発」を参照してください。

2.5.1 DB2の考慮事項

これらのトピックでは、12cリリース2 (12.2)に存在するDB2の考慮事項について説明します。

2.5.1.1 DD基本表およびビュー

DD基本表およびビューの所有者は、OTGDB2です。 これは変更できません。

2.5.1.2 後処理されるSUBSTR関数

SUBSTR関数は、z/OSのDB2 UDBなど、DRDAサーバーと互換性がない方法でOracleデータベースで使用できます。

したがって、SUBSTR関数は後処理されます。 ただし、サーバーは「ネイティブ・セマンティクス」機能を使用してネイティブに処理できます。 詳細は、「アプリケーションの開発」を参照してください。

2.5.1.3 データ型の制限事項

Oracle Database Gateway for DRDAでのデータ型の制限。

データ型の詳細は、「DRDAデータ型からOracleデータ型への変換」を参照してください。

2.5.1.4 NULL値およびストアド・プロシージャ

NULL値は、ゲートウェイを通じてストアド・プロシージャのコールに渡されることはなく、コールから戻されることもありません。

2.5.1.5 数値の文字列連結

DB2ユニバーサル・データベースでは、数値の文字列連結はサポートされていません。

たとえば、次のような使用方法は許可されません。

SELECT 2||2 FROM table@dblink

2.5.1.6 GLOBAL_NAMES初期化パラメータ

OracleデータベースのINIT.ORAファイルでGLOBAL_NAMESTRUEに設定されている場合は、ゲートウェイに接続できるように、ゲートウェイ初期化パラメータ・ファイルで異機種間サービス(HS)初期化パラメータHS_DB_DOMAINを指定し、OracleデータベースのDB_DOMAIN パラメータの値と一致させる必要があります。

詳細は、使用しているプラットフォームに応じて、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を参照してください。

2.5.1.7 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を参照してください。

2.5.1.8 日付計算

DB2では、日付データ型での数値の加算または減算は許可されません。

一般に、DB2の制限により、次のタイプのSQL式フォームはゲートウェイで正しく動作しません:

date + number
number + date
date - number
date1 - date2

日付と数値の加算および減算の(date + number, number + date, date - number)フォームは、拒否されるDB2に送信されます。

また、DB2では、日付の減算は常に実行されません。 2つの日付(date1 - date2)を減算すると、DB2の日付の減算の解釈が異なるため、結果はサーバーによって異なります。

ノート:

日付の計算に関する問題が解決されるまで、すべてのゲートウェイSQL式で日付の計算式を使用しないでください。

2.5.1.9 行の長さの制限

DRDAアーキテクチャの制限により、DRDA表現で集計長が32 KBを超える行は格納または取得できません。

2.5.1.10 SQL*Plus内のLONGデータ型

SQL*Plusは、Oracle Database Gateway for DRDAからLONGデータ型の列をフェッチできません。

2.5.1.11 ストアド・プロシージャおよびトランザクション整合性

IBM DB2では、ストアド・プロシージャ用として戻り時にコミット(Commit on Return)という機能が導入されています。

この機能により、DB2では、ストアド・プロシージャの成功後に自動コミットを実行できます。 この機能は、プロシージャの作成時に有効化されます。 データの整合性を確保するために、Oracle Database Gateway for DRDAは異機種環境ではこの機能をサポートしません。 この機能が有効になっているストアド・プロシージャをコールしようとすると、ゲートウェイからエラーORA-28526またはPLS-00201が返されます(識別子を宣言する必要があります)。

2.5.2 SQLの制限

これらのトピックでは、Oracle Database Gateway for DRDAのSQL制限について説明します。

2.5.2.1 Oracle ROWID列

DB2 ROWID列は、Oracle ROWID列と互換性がありません。

ROWID列はサポートされていないため、次の制限が適用されます:

  • UPDATE およびDELETEは、WHERE CURRENT OF CURSOR句ではサポートされていません。 ゲートウェイを介して特定の行を更新または削除するには、条件スタイルのWHERE句を使用する必要があります。 (Oracle Bug#205538)

    プリコンパイラおよびPL/SQLプログラムでUPDATE文およびDELETE文が使用される場合、これらの文はOracle ROWID関数に内部的に依存します。

  • Oracle DatabaseとDB2間のスナップショットはサポートされません。

    スナップショットは、OracleのROWID列に内部的に依存します。

2.5.2.2 Oracleバインド変数

Oracleバインド変数は、ゲートウェイでの使用時にSQLパラメータ・マーカーになります。

したがって、バインド変数は、SQLパラメータ・マーカーと同じ制限を受けます。

たとえば、次のような文は許可されません。

WHERE :x IS NULL 
WHERE :x = :y 

2.5.2.3 サポートされないCONNECT BY

Oracle Database Gateway for DRDAは、SELECT文でCONNECT BYをサポートしていません。