Oracle 10g データベースから Postgres db にデータを移行したいと考えています。Oracle SQL 開発者にはデータ移行オプションがありますが、それは非 Oracle データベースを Oracle に移行するためだけのようです。他のオプションを教えてください。
4 に答える
そのための Perl で書かれた専用ツールOra2Pgがあります。
ほとんどのデータベースは、他のデータベースからインポートするためのツールを提供していますが、他のデータベースにエクスポートするツールは提供していません。
以前にORA2PGを使用してみましたが、複雑すぎたため、SQL開発者からpostgresに移行する独自の方法を見つけました。
手順は次のとおりです。ご不明な点がございましたら、お気軽にお問い合わせください。
ORACLE データベースから POSTGRES データベースにデータを移行する方法
移行前にダウンロードするツール: SQL Developer、WINSCP
SQL開発者
- ステップ 1: SQL Developer を使用して Oracle サーバーにログインする
- ステップ 2: スキーマ名を右クリック > エクスポート > 形式を CSV に、エンコードを UTF-8 に変更します。(Export DDL がチェックされていないことを確認してください) (ファイル名が .csv で終わっていることを確認してください)
- ステップ 3: [次へ] > [次へ] > [完了] をクリックします (エクスポートが完了するまで待ちます)。
SQL DEVELOPER からのファイルがエクスポートされたら
- csv ファイルを右クリックし、[開く] をクリックして、メモ帳で開きます。[ファイル] > [名前を付けて保存] > [エンコーディングを UTF-8 に変更] をクリックして保存します。
WINSCPを開く
- ステップ 1: サーバーにログインする前に、[編集] > [詳細設定] > [ファイル名の UTF-8 エンコード] をオンにします。
- STEP 2: サーバーにログインする
- ステップ 3: [設定] > [内部エディタ] > [デフォルトのエンコーディングを UTF-8 に変更] > [OK] をクリックします。
- ステップ 4: サーバー上の任意の場所に新しいディレクトリを作成し、ファイルをそのディレクトリに WINSCP にドラッグします。
これで、ファイルは UTF-8 エンコーディングでサーバー上にあるはずです。
パテを開く
Putty を使用してサーバーにログインする前に、[翻訳] をクリックし、受信したデータの想定される文字セットを UTF-8 に変更してから、[データ] をクリックし、ターミナル タイプの文字列を Putty に変更してから、サーバーにログインします。
Putty でサーバーにログインしたら、次のコマンドを実行します。
ロケールの魅力マップ
このコマンドは、サーバーのデフォルトのエンコーディングを表示します。
次の後にそのコマンドを実行します。
grep -Rw '/home/pgadmin/data1/1234.csv' -e 'fre'
- data1 = サーバー上に作成されたディレクトリ
- 1234.csv = data1 ディレクトリ内の Csv ファイル
このコマンドは、文書内のフランス語の単語がまだ失われているかどうかを示します。そのコマンドの「/home/pgadmin/data1/1234.csv」はサーバー上のファイルの場所であり、「1234.csv」は CSV ファイルの名前です。そのコマンドを実行した後、すべて問題がなければ、Postgres データベースに置くことができます。
コマンド「psql」でpostgresデータベースに入った後</p>
- ステップ 1: 独自のデータベース、スキーマ、およびテーブルを作成したことを確認します (方法がわからない場合は、ドキュメントの最後までスクロールしてください)。
- ステップ 2: 独自のデータベース、スキーマ、およびテーブルを作成したら、copy コマンドを実行できます。
\Copy joe.data01 FROM ‘home/pgadmin/data1/1234.csv’ DELIMITER ‘,’ CSV HEADER encoding ‘UTF-8’ ;
ファイルに csv ファイルの列名が既にある場合は、コマンドに「HEADER」を追加します。joe.data01= 作成されたテーブルの名前 home/pgadmin/data1/1234.csv = サーバー上のファイルの場所
スキーマがコピーされたかどうかを確認するには、次のコマンドを実行します。select * from joe.data01;
フランス語の単語が失われていないかどうかを確認するには、次のコマンドを実行します select * from joe.data01 where isa = ‘fre’ ;
- Postgres でデータベースを作成する方法:
CREATE DATABASE name_of_database ;
- Postgres でスキーマを作成する方法:
CREATE SCHEMA name_of_schema;
- Postgres でテーブルを作成する方法:
create table joe.data01 (ccca CHAR(50) NOT NULL, isa CHAR(70) NOT NULL, co CHAR(150) NOT NULL) ;
- テーブルセクションを展開し、
- 次に、エクスポートするテーブルを選択します
- 右クリックしてエクスポートを選択し、
- 次に、フォーマットとエクスポートを選択します(ステートメントまたはcsvを挿入することをお勧めします)