3

2 つの Oracle データベース スキーマ間でレコードをコピーする必要があります。

手動では、SQL*PLUS COPY コマンドを使用してこれを行うことができます。

http://www.oracleutilities.com/SQLPLus/copy.html

ただし、可能であれば cx_Oracle を使用してこれを自動化したいと考えています (SSH のやり取りなど、他のことも行う必要があるため、Python と cx_Oracle を使用します)。

ただし、cx_Oracle 内で COPY を実行しようとすると、コマンドが気に入らないようです。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
cx_Oracle.DatabaseError: ORA-00900: invalid SQL statement

これは、標準の SQL 仕様の一部ではなく、COPY が SQL*PLUS 固有のコマンドであるためだと思いますか?

とにかく、COPY コマンド (またはその他の SQL*PLUS 固有の拡張機能) を cx_Oracle で動作させる方法はありますか?

INSERT INTO...SELECT を使用して同様のことを達成することは可能だと思いますが、問題の 2 つのデータベースが別々の Oracle インスタンスまたはホスト上にあり、それらのリンクを作成する権限が常にあるとは限らない場合、データベース リンクが必要です。

乾杯、ビクター

4

2 に答える 2