|
|
1 2 次のページ
|
|
PostgreSQLからOracleへのデータ移行
|
PostgreSQLからOracleへデータを移行する際には、PostgreSQL付属のエクスポートツールである「pg_dump」を使うとラクです。
PostgreSQLの移行元データベース名を「tsukaeru」とすると、データをエクスポートするコマンドは次のようになります。「-D」オプションを付けると、データがINSERT文を使って出力されます。
|
% pg_dump -D tsukaeru > tsukaeru.sql
|
|
図1のように、pg_dumpはテキスト形式でデータをエクスポートしますので、データ型の修正が容易です。次ページの表1などを参考にしてデータ型を修正します。
|
図1:pg_dumpの出力例 (画像をクリックすると別ウィンドウに拡大表示します)
|
pg_dumpの出力には、ファンクションの定義なども含まれますので、余計な部分はコメントアウトするか削除する必要があります。
続いて、修正したデータをOracleに投入するには、SQL*Plusを用います。
|
% sqlplus user/pass < tsukaeru.sql
|
|
コマンドが成功すれば、データ移行は完了です。
|
OracleからPostgreSQLへのデータ移行
|
OracleからPostgreSQLも同じように、まずはテキスト形式でデータをエクスポートします。
Oracleには、テキスト形式でデータをエクスポートできるさまざまな製品がありますので、それらを使うか、もしくはExcelなどを使ってODBC接続経由で取得してもよいでしょう。
ここでは、Ora2Pgを使う方法を紹介します。Ora2Pgは、OracleからPostgreSQLへのデータ移行を行うPerlモジュールです。Ora2Pgは、PostgreSQLソースコード配布パッケージのcontrib/oracleフォルダに入っています。
Ora2Pgは、Oracleからのデータのエクスポートと、PostgreSQLに合わせたデータ型の変更を一度にやってくれます。具体的には、Oracleからテーブルの定義とデータを読み取り、PostgreSQLのデータ型に変更した後、テキスト形式で出力します。テキストの形式は、pg_dumpと同じように、CREATE TABLE文やINSERT文を使ってデータを投入する形式です。
また、同時に両方のデータベースに接続して、データ型を変換しつつ投入もしてくれるモードも
あるのですが、後に述べますようにうまくいかないものもありますので、いったんテキストファイルに出力する方法を取るのがよいでしょう。
Ora2Pgによるデータ型の変換内容は、表3を参照してください。
|
Oracleデータ型 |
Ora2Pgによる変換 |
文字型 |
CHAR(n) |
CHAR(n) |
NCHAR(n) |
CHAR(n) |
VARCHAR(n) |
VARCHAR(n) |
NVARCHAR(n) |
VARCHAR(n) |
VARCHAR2(n) |
VARCHAR(n) |
NVARCHAR2(n) |
VARCHAR(n) |
LONG |
TEXT |
CLOB |
TEXT |
数値型 |
NUMBER |
NUMERIC |
FLOAT |
FLOAT8 |
日付型 |
DATE |
TIMESTAMP |
バイナリ型 |
RAW(n) |
TEXT |
LONG RAW |
TEXT |
BLOB |
TEXT |
BFILE |
TEXT |
その他 |
ROWID |
OID |
|
表3:Ora2Pgのデータ型変換表
|
1 2 次のページ
|
書籍紹介 まるごと PostgreSQL! Vol.1
日本での市場シェアNo.1(オープンソースRDBMS部門)データベースソフトPostgreSQLの最新情報を、開発メンバーを含む豪華執筆陣が多面的かつ詳細に解説します。PostgreSQL用クラスタリング/レプリケーションソフト、PostgreSQL⇔Oracle移行、PostgreSQLによる大規模サイト構築法、新バージョンPostgreSQL 8.0先行レビュー、PostgreSQL用.NETデータプロバイダ等々、他では読めない貴重な記事が満載です。
発売日:2004/12/08発売
定価:\1,890(本体 \1,800+税)
|
|
|
著者プロフィール
奥畑 裕樹(OKUHATA, Hiroki)
Javaとオープンソース技術を得意とする技術コンサルタント。最近のテーマは、ソフトウェア開発の全体最適をはかること。気が付けば、10才のときにプログラミングを始めて以来、常に何かを作っている…。
|
|
|
|