2017-11-12 21 views
0

javaとOracleを使用してデータベースDB1のテーブルAからデータベースDB2のテーブルBにデータを移行しようとしています。1つのデータベースの1つのテーブルから別のデータベースの別のテーブルにデータを移動

私はJava 1.8を使用しています。私のソースデータベースにはOracle 11gがあり、接続先データベースにはOracle 12cがあります。

ソースデータベースに宛先データベースの構造(scema、tables)を作成しました。そして、javaのsource *クエリから* insert into dest select *を使用することによって、マイグレートします。ソーステーブルのレコード数が何百万というように、時間がかかります。後でこのマイグレーションされたデータを実際の宛先にエクスポートしたいので、時間もかかるでしょう。

私の知っている限り..私は2接続で準備されたステートメントを使用することはできませんと思います。私のテーブルは400から500のカラムで構成されているので、多くのカラムをプリペアドステートメントでバインドするのは良い考えではありません。また、ソーステーブルとデスティネーションテーブルの構造も異なります。私は以前のフィールドをselect * from tbl queryに挿入する新しいフィールドにマップしたプロパティファイルでフィールドマッピングを行いました。私のソーステーブルのように、カラムはcol0001であり、宛先の対応するカラムはref_noです。これも私が準備された声明を使うことを許さないでしょう。しかし、Javaのステートメントを使用することによって、私は単一のdBでデータを移行することができます。

私もdblinkで試しました。しかし、clobデータ型の場合、私はデータを移行することができません。

これまで誰かがこのようなことをした場合、解決策を提供してください。一回限りのコピーについては

答えて

0

、あなたはダイレクトモードのインサートを行うことができます。ここでは

insert /*+ APPEND */ into local_table select * from [email protected]_link; 

をいくつかの他の関連linksです。

+0

リモート表から選択されたLOBロケータを使用できないため、エラーが発生します。 –

関連する問題