第2回:データの移行(1) (2/2)

まるごと PostgreSQL!
PostgreSQLとOracleによるデータベース相互移行マニュアル

第2回:データの移行(1)
著者:奥畑 裕樹(OKUHATA, Hiroki)   2005/10/18
前のページ  1  2
Ora2Pgのインストール

   Ora2Pgを使うには、まずPerl5の実行環境が必要です。次に、DBD-Oracleがインストールされている必要があります。PerlにはDBIというDBアクセスの汎用インターフェイスがありますが、DBDOracleは、このDBIのOracle用のドライバモジュールです。最新のバージョンは、次のURLより入手できます。
   詳しいインストールの方法は、モジュールに付属のドキュメントを参照してください。なお、Oracle10gなどには、Perl 5の実行環境と同モジュールがあらかじめORACLE_HOMEフォルダのperlフォルダに入っているようですので、そちらを使うこともできます。


Ora2Pgの使い方

   PostgreSQLのcontrib/oracleフォルダの中にora2pg.plファイルがあります。このファイルは、Ora2Pgモジュールを使ってデータを移行するサンプルプログラムになっています。これを参考にするか、あるいは直接書き換えるなどして、リスト1のようなプログラムを作成します。このプログラムは、テーブルの定義をエクスポートするものです。

#!/usr/bin/perl

BEGIN {
$ENV{ORACLE_HOME} = 'C:/Oracle10g/ orahome';
$ENV{NLS_LANG} = 'japanese_japan. JA16EUC';
}

use strict;
use Ora2Pg;

my $schema = new Ora2Pg (
datasource => 'dbi:Oracle:host= localhost;sid=ORA10',
user => 'tsukaeru',
password => 'sql',
schema => 'TSUKAERU',
type => 'TABLE',
debug => 1
);

$schema->export_schema('schema.sql');
exit(0);

リスト1:export_schema.pl

   次に、Ora2Pg.pmとexport_schema.plがあるフォルダで、「% perl.exe -I.export_schema.pl」のように実行します。

   -Iオプションは、モジュールをインクルードするパスを追加するオプションです。

   すると、schema.sqlというファイルが出力されます(図2)。schema.sqlファイルは、EUCの文字コードに対応したテキストエディタなどで開いてください。この時点で既に、テーブル定義中のデータ型はPostgreSQL用に修正されています。

schema.sqlの中身
図2:schema.sqlの中身
(画像をクリックすると別ウィンドウに拡大表示します)

前のページ  1  2


奥畑 裕樹(OKUHATA, Hiroki)
著者プロフィール
奥畑 裕樹(OKUHATA, Hiroki)
Javaとオープンソース技術を得意とする技術コンサルタント。最近のテーマは、ソフトウェア開発の全体最適をはかること。気が付けば、10才のときにプログラミングを始めて以来、常に何かを作っている…。


INDEX
第2回:データの移行(1)
  PostgreSQLからOracleへのデータ移行
Ora2Pgのインストール
PostgreSQLとOracleによるデータベース相互移行マニュアル
第1回 データベース移行
第2回 データの移行(1)
第3回 データの移行(2)
第4回 SQL文の移行(1)
第5回 SQL文の移行(2)
第6回 SSQL文の移行(3)
第7回 ファンクションの移行(1)
第8回 ファンクションの移行(2)
第9回 ストアドプロシージャの移行(1)
第10回 ストアドプロシージャの移行(2)
第11回 ストアドプロシージャの移行(3)
第12回 ストアドプロシージャの移行(4)
第13回 まとめ

人気記事トップ10

人気記事ランキングをもっと見る