DBリンクの制限事項

Database管理者ガイドには、以下のようにデータベースリンクの制限事項が書かれているが、それ以外にいろいろ制限がある。

データベース・リンクの制限事項


・データベース・リンクを使用して次の操作を実行することはできません。
・リモート・オブジェクトへの権限の付与。
・一部のリモート・オブジェクトに対するDESCRIBEの実行。ただし、次のリモート・オブジェクトはDESCRIBEをサポートしています。
・表
・ビュー
・プロシージャ
・ファンクション
・リモート・オブジェクトの分析。
・参照整合性の定義または規定。
・リモート・データベース内のユーザーへのロールの付与。
・リモート・データベースにおけるデフォルト以外のロールの取得。
・SSL、パスワードまたはNTのシステム固有の認証によって認証されていない現行ユーザー・リンクの使用。


エラーメッセージに"リモート"をキーワードで探してデータベースリンクに関するものを拾い上げてまとめてみる。
事象 エラーが発生する例 回避策 参考リンク エラーコード(ピックアップ)
パーティション句を使えない SELECT * FROM TAB1@DBLINK PARTITION(P1);
SELECT * FROM TAB1@DBLINK SUBPARTITION FOR('COL_VALUE');
WHERE句にパーティションキーの条件を付ける。 こちら ORA-14100:パーティション拡張表名はリモート・オブジェクトを参照できません。
DDL不可(すべてが出来ないかは不明) TRUNCATE TABLE TAB1@DBLINK; exec DBMS_UTILITY.EXEC_DDL_STATEMENT('DDL')@DBLINK; ORA-02021: リモート・データベースに対するDDL操作が無効です。
ORA-26708: リモートDDLは、STREAMS : dblink stringではサポートされていません
ORA-24163: dblinkはルール・エンジンDDLではサポートされていません。
LOBを使う上で制限がある

ORA-06514: PL/SQL: サーバーはリモート・コールを処理できません。
原因: リモート・コールに、カーソルの変数またはLOBの変数である複数のパラメータがあります。
SELECT LOB_COL FROM TAB1@DBLINK; ローカルにCREATE AS  SELECTする。
CREATE TMP AS SELECT ...;
使えるかわからないが18cでプライベート一時表というのが出来て、
それが使えればDROPのことを考えなくて良いので楽。
こちら ORA-64202: リモートの一時LOBまたは抽象LOBロケータが見つかりました
こちら ORA-22992: リモート表から選択されたLOBロケータは使用できません。
LS-00564: LOB引数はリモート・サーバーへのコールでは許可されていません。
オブジェクト型をSELECT句に含めたFOR UPDATEができない 処置: FOR UPDATEの選択を試行するには、
抽象データ型の列でないリモート表のベース列のみで構成された
ビューまたはSELECTリストを使用してください。
ORA-02015: リモート表に対してFOR UPDATE句は使用できません。
SQL組み換えでおかしくなる? 事象が良くわからないが、複雑なSQLで組み換えが発生してようわからん状態になった時に発生すると思われる。 処置: リモート・データベース上で同様のビューを作成して。。。とある。
だが、ビューを作ってもSQL組み換えが発生したら一緒だと思う。
ヒント句で何とかするべきかと。
NO_MERGE・NO_QUERY_TRANSFORMATIONなどで
組み換えを制御したり、LEADINGを使ったり。
ORA-02022: リモート文に、リモート・オブジェクトを参照する最適化されていないビューがあります。
リモート側でコミットできない 3. ローカル側でコミットする。 3の例 ORA-02064: 分散処理はサポートされていません。
原因: 次のサポートされていない操作の1つを試行しました。
1. データベース・リンクを参照する副問合せを使用して、リモート更新の配列処理を実行しようとした。
2. バインド変数を使用したLONG列の更新、およびデータベース・リンクとバインド変数の両方を参照する副問合せによる2番目の列の更新を試行した。
3. コーディネート・セッションで、OUTパラメータまたは関数コールを使用するRPCプロシージャ・コールからコミットが発行された。
処置: リモート更新文を単純にしてください。
LONGの使用に制限がある ORA-02064: 分散処理はサポートされていません。


絵で見てわかるOracleの仕組み 新装版
小田 圭二
翔泳社
2019/3/11

この記事へのコメント