blog.backToList

OracleダンプファイルをSQL Serverにインポートする方法

blog.publishedAt: 2026年4月4日
oraclesql-servermigrationexport

Oracle から SQL Server への移行やデータ連携で、.dmp ファイルのデータを SQL Server に取り込みたい場面は少なくありません。

本記事では、OraDB DUMP Viewer を使った2つのアプローチを紹介します。

アプローチ1: SQL Server へ直接インポート(推奨)

OraDB DUMP Viewer は SQL Server への直接インポート機能を備えています。CSV や SQL ファイルを経由せず、.dmp から直接データを投入できます。

手順

  1. OraDB DUMP Viewer で .dmp ファイルを開く
  2. 対象テーブルを選択
  3. エクスポート → SQL Serverを選択
  4. SQL Server の接続文字列を入力:
    Server=localhost;Database=mydb;Trusted_Connection=True;
    または
    Server=192.168.1.100;Database=mydb;User Id=sa;Password=yourpassword;
  5. インポート先テーブル名を確認(自動で元のテーブル名が設定されます)
  6. 実行

メリット: 中間ファイル不要。テーブル自動作成。大量データも効率的に処理

アプローチ2: SQL ファイル経由でインポート

直接接続できない環境や、SQL を事前にレビューしたい場合はこちら。

手順

  1. .dmp ファイルを OraDB DUMP Viewer で開く
  2. テーブルを選択してエクスポート → SQLを選択
  3. 対象データベースで SQL Server を選択
  4. 生成された .sql ファイルを確認・必要に応じて修正
  5. SSMS または sqlcmd でインポート:
    sqlcmd -S localhost -d mydb -i exported_table.sql

データ型のマッピング

OracleSQL Server備考
NUMBER(p,s)DECIMAL(p,s)精度・スケールを保持
VARCHAR2(n)NVARCHAR(n)Unicode 対応
CHAR(n)NCHAR(n)Unicode 対応
DATEDATETIME2Oracle DATE は時刻を含む
TIMESTAMPDATETIME2精度保持
CLOBNVARCHAR(MAX)最大 2GB
BLOBVARBINARY(MAX)最大 2GB
BINARY_FLOATREAL4バイト
BINARY_DOUBLEFLOAT8バイト

バッチインポート(複数テーブル)

テーブルが多数ある場合:

  1. 直接インポート: バッチエクスポートで SQL Server を選択し、全テーブルを一括投入
  2. SQL 経由: バッチエクスポートで SQL (SQL Server) を選択し、出力後に一括実行:
    for %%f in (*.sql) do sqlcmd -S localhost -d mydb -i "%%f"

ODBC 経由でのインポート

SQL Server 以外の接続方法として、ODBC エクスポートも利用できます。SQL Server の ODBC ドライバーを使って接続し、任意のテーブルにデータを投入できます。

まとめ

OraDB DUMP Viewer の直接インポート機能を使えば、Oracle 環境なしに .dmp ファイルから SQL Server へ最短ルートでデータを移行できます。中間ファイル不要のダイレクトインポートが最も効率的ですが、SQL ファイル経由でのレビュー付き移行も可能です。

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