blog.backToList

OracleダンプからPostgreSQLへ移行する手順ガイド

blog.publishedAt: 4 апреля 2026 г.
oraclepostgresqlmigrationexport

Oracle から PostgreSQL への移行プロジェクトでは、既存の .dmp ファイルからデータを取り出して PostgreSQL に取り込む作業が発生します。

本記事では、Oracle 環境を使わずに .dmp ファイルから PostgreSQL 互換の SQL を生成し、インポートする手順を解説します。

移行の全体像

.dmp ファイル → OraDB DUMP Viewer → PostgreSQL 用 SQL → psql でインポート

Oracle のインストールは不要です。必要なのは:

ステップ1: ダンプファイルの内容を確認

  1. OraDB DUMP Viewer で .dmp ファイルを開く
  2. スキーマツリーでテーブル一覧を確認
  3. 各テーブルのデータ量・カラム構造・データ型を把握

この段階で移行対象のテーブルを選定し、除外テーブルがあれば設定しておきます。

ステップ2: PostgreSQL 用 SQL をエクスポート

単一テーブルの場合

  1. テーブルを選択してエクスポート → SQLを選択
  2. 対象データベースで PostgreSQL を選択
  3. 保存先を指定して実行

複数テーブルの一括エクスポート

  1. メニューからバッチエクスポートを選択
  2. 移行対象テーブルにチェック
  3. 出力形式で SQL(PostgreSQL)を選択
  4. 出力先フォルダを指定して実行

PostgreSQL 構文に合わせた CREATE TABLE 文と INSERT 文が生成されます。

ステップ3: データ型のマッピング

OraDB DUMP Viewer は自動でデータ型を変換しますが、主要なマッピングを把握しておくと安心です。

OraclePostgreSQL備考
NUMBER(p,s)NUMERIC(p,s)精度・スケールを保持
VARCHAR2(n)VARCHAR(n)そのまま
CHAR(n)CHAR(n)そのまま
DATETIMESTAMPOracle DATE は時刻を含む
TIMESTAMPTIMESTAMPそのまま
CLOBTEXTPostgreSQL の TEXT は無制限長
BLOBBYTEAバイナリデータ
BINARY_FLOATREAL4バイト浮動小数点
BINARY_DOUBLEDOUBLE PRECISION8バイト浮動小数点

ステップ4: PostgreSQL にインポート

# データベースを作成
createdb mydb

# SQL ファイルをインポート
psql -d mydb -f exported_table.sql

# 複数ファイルの一括インポート
for f in /path/to/sql/*.sql; do
  psql -d mydb -f "$f"
done

ステップ5: 移行後の確認

  • テーブル数の一致確認: SELECT count(*) FROM information_schema.tables WHERE table_schema = 'public';
  • 行数の一致確認: 各テーブルの SELECT count(*) を OraDB DUMP Viewer の表示と比較
  • データ型の確認: d tablename でカラム定義を確認

LOB データの移行

BLOB/CLOB を含むテーブルは注意が必要です:

  • CLOB → TEXT: SQL エクスポートで自動変換されます
  • BLOB → ファイル: LOB 抽出機能でファイルとして取り出し、アプリケーション側で取り込む方法が確実です

CSV 経由での移行(代替手段)

SQL エクスポートの代わりに CSV 経由で移行することも可能です。

# OraDB DUMP Viewer で CSV 出力後
psql -d mydb -c "\COPY tablename FROM '/path/to/table.csv' WITH (FORMAT csv, HEADER true)"

大量データの場合は CSV + COPY コマンドの方が INSERT 文より高速です。

まとめ

OraDB DUMP Viewer を使えば、Oracle 環境なしに .dmp ファイルから PostgreSQL 互換の SQL や CSV を生成できます。データ型の自動変換により、手動でのスクリプト修正を最小限に抑えられます。

→ 無料でライセンスを取得する