web-dev-qa-db-ja.com

Oracle SQL Developerを使用して、あるデータベースから別のデータベースにコピー-接続に失敗しました

Oracle sql開発者を使用して、あるデータベースから別のデータベースにテーブルをコピーしようとしています。ユーザー名、パスワード、SIDがあります。

copy from uname1/password1@SID1 to uname2/pwd2@SID2 insert table1 (*) using (select * from message_table);

しかし、私はconnection failedエラー。

2つのデータベースは異なるホストホストに存在します(ホスト名は接続プロパティが異なります)。

テーブルには500万件のレコードがあり、エクスポート/インポートするには扱いにくい

23
user2133404

copyコマンドは、SQL * Plusコマンドです(SQL Developerコマンドではありません)。 SID1とSID2のtnsnameエントリをセットアップしている場合(たとえば、tnspingを試す)、コマンドを実行できるはずです。

別の前提として、table1にはmessage_tableと同じ列があります(列のデータ型はCHAR、DATE、LONG、NUMBERまたはVARCHAR2のみです)。また、挿入コマンドでは、主キーを考慮する必要があります(たとえば、重複レコードを挿入していないこと)。

SQL * Plusで次のようなコマンドのバリエーションを試しました(エラーなし)。

copy from scott/tiger@db1 to scott/tiger@db2 create new_emp using select * from emp;

上記のステートメントを実行した後、new_empテーブルも切り捨て、次のコマンドを実行しました。

copy from scott/tiger@db1 to scott/tiger@db2 insert new_emp using select * from emp;

SQL Developerを使用すると、次のようにしてオブジェクトをコピーするための同様のアプローチを実行できます。

  1. ツールバーで、[ツール]> [データベースコピー]を選択します。

  2. 必要なコピーオプションを使用して、ソースと宛先の接続を識別します。 enter image description here

  3. オブジェクトタイプについては、テーブルを選択します。 enter image description here

  4. 特定のテーブルを指定します(例:table1)。 enter image description here

コピーコマンドアプローチは古く、その機能は新しいデータ型のリリースで更新されていません。これには、Oracleのデータポンプのように(テーブルの場合でも)より多くの現在のアプローチがあります。

44
Patrick Bacon