2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ora2pg を使ってoracleのテーブル定義をpostgres用に変換してみた(windows)

Posted at

背景

oracleに作成されたテーブルをpostgresに移動しようとしたところ、型の違いなどで単純にoracleのにテーブル作成したときのddl実行では移動させられなかった。
ora2pgというものを使えば、ある程度自動で変換してくれるとのことだったので、ora2pgを使ってみました。

本記事は、【windows】【データベース移行】oracleからpostgresqlへ
をもとに作成しています、リンク先の手順で、途中私が詰まってしまったところに対して
補足で解説を入れていきたいと思います。

手順

1.perl環境のインストール

Strawberry Perl for Windowsをインストール
この時32bitと64bitどちらを選択するかはoracleのbitに合わせる必要があります。
私は、oracleが32bitなのに64bitをインストールしてしまい、子1時間ほど苦戦しました。

コマンドプロンプトで

perl --version

を実行、バージョンが出てきたらOK

2.関連モジュールのインストール

コマンドプロンプトで以下を実行。

CPAN install Time-Hires
CPAN install DBI
CPAN install DBD::Oracle

私の環境ではproxyを通す必要があったのですが、proxyもうまく通せなかったので、
Strawberry Perl+Proxy接続環境でCPANモジュールをインストールする
を参考に、以下のモジュールを直接ダウンロードしてインストールしました。

Time-Hires
DBI
DBDOracle

3.環境変数の追加

以下の環境変数を追加

パス名:ORACLE_HOME
C:\oracle\product\11.2.0\client_1\
パス名:LD_LIBRARY_PATH
C:\oracle\product\11.2.0\client_1\LIB

※この部分リンク先の記事の設定値と異なります。

4.ora2pgのインストール

ora2pgをgitからzipファイルをダウンロードして適当な場所に解凍。
展開したディレクトリまで移動して、perlを使ってインストール

cd C:¥ora2pg-19.0
perl Makefile.PL
gmake
gmake install
ora2pg --version

5.ora2pgの設定

インストールが完了すると、展開したディレクトリ内に[ora2pg_dist.conf]ファイルが出来ているので、コピーして[ora2pg.conf]にリネーム、ファイルを開いて以下の設定を自分の環境に変更する。

ORACLE_HOME [windowsOSに通したパス]
ORACLE_DSN dbi:Oracle:host=[ホスト名]:sid=[sid名(XE等)]
ORACLE_USER [ユーザー名]
ORACLE_PWD [パスワード]
SHEMA [スキーマ名(通常はユーザー名と同じ)]

※ORACLE_HOMEは環境変数に指定したものが勝手に入っています。

設定が完了したら、以下のコマンドを実行して接続確認

ora2pg -c ora2pg.conf -t SHOW_VERSION
Oracle database 11g Release 11.2.0.1.0

6.ora2pgの実行

コマンドプロンプトでora2pg展開ディレクトリに移動し以下のコマンドを実行

ora2pg -c ora2pg.conf

そのまま放置しておくとディレクトリ直下にoutput.sqlというファイルが作成されていて、
その中にスクリプトが記載されていました、必要な部分だけ
postgresで実行して無事作成に成功しました。

参考URL

【windows】【データベース移行】oracleからpostgresqlへ

Strawberry Perl+Proxy接続環境でCPANモジュールをインストールする

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?