LoginSignup
4
6

More than 5 years have passed since last update.

DBLINK経由の操作のつまづきポイント

Posted at
  • TRUNCATE文は実行できない。
TRUNCATE TABLE TEST_TABLE@DBLINK


Error
[row:1,col:26] ORA-02021: リモート・データベースに対するDDL操作が無効です。

上記エラーが出る。
移行作業で、ターゲーット側にTRUNCATE&INSERTする対象テーブルを管理するテーブルを作成して、ソース側からJP1からPL/SQLを実行するようなジョブを作りたかった。
TRUNCATEがソース側から実施できないため、管理テーブルのMVIEWをターゲーット側に作成して、TRUNCATEするようにして対処した。

  • ソースデータベースにパーティション指定した、INSERT INTO ~ SELECT ができない パーティション指定すると以下のエラーになる。 ※SRC_TABLEとTGT_TABLEは同じカラム構成
INSERT INTO TGT_TABLE@DBLINK SELECT * FROM SRC_TABLE PARTITION (P_1505_15);

Error
[row:1,col:1] ORA-02070: データベースDBLINKはこのコンテキストではextended partition nameをサポートしません。

TGT_TABLEは1億件近いテーブルだが、日別のレンジパーティション構成なのでUSER_TAB_PARTITONを見て、INSERT&COMMITするループのPL/SQLを作成したが、これができなかったので、パーティション名の命名規約から処理日(パーティションキー)をTO_CHAR&TO_DATEで動的に作成してWHERE句指定することとした。

DBLINK越しのリモートデータベースへの操作はドキュメントで見当たらないのですが、まとまっている場所をご存知の方教えて下さい。
バージョンは11gR2 EEです。

4
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6