OracleダンプファイルをSQL Serverにインポートする方法
blog.publishedAt: 4 avril 2026
oraclesql-servermigrationexport
Oracle から SQL Server への移行やデータ連携で、.dmp ファイルのデータを SQL Server に取り込みたい場面は少なくありません。
本記事では、OraDB DUMP Viewer を使った2つのアプローチを紹介します。
アプローチ1: SQL Server へ直接インポート(推奨)
OraDB DUMP Viewer は SQL Server への直接インポート機能を備えています。CSV や SQL ファイルを経由せず、.dmp から直接データを投入できます。
手順
- OraDB DUMP Viewer で .dmp ファイルを開く
- 対象テーブルを選択
- エクスポート → SQL Serverを選択
- SQL Server の接続文字列を入力:
またはServer=localhost;Database=mydb;Trusted_Connection=True;Server=192.168.1.100;Database=mydb;User Id=sa;Password=yourpassword; - インポート先テーブル名を確認(自動で元のテーブル名が設定されます)
- 実行
メリット: 中間ファイル不要。テーブル自動作成。大量データも効率的に処理
アプローチ2: SQL ファイル経由でインポート
直接接続できない環境や、SQL を事前にレビューしたい場合はこちら。
手順
- .dmp ファイルを OraDB DUMP Viewer で開く
- テーブルを選択してエクスポート → SQLを選択
- 対象データベースで SQL Server を選択
- 生成された .sql ファイルを確認・必要に応じて修正
- SSMS または sqlcmd でインポート:
sqlcmd -S localhost -d mydb -i exported_table.sql
データ型のマッピング
| Oracle | SQL Server | 備考 |
|---|---|---|
| NUMBER(p,s) | DECIMAL(p,s) | 精度・スケールを保持 |
| VARCHAR2(n) | NVARCHAR(n) | Unicode 対応 |
| CHAR(n) | NCHAR(n) | Unicode 対応 |
| DATE | DATETIME2 | Oracle DATE は時刻を含む |
| TIMESTAMP | DATETIME2 | 精度保持 |
| CLOB | NVARCHAR(MAX) | 最大 2GB |
| BLOB | VARBINARY(MAX) | 最大 2GB |
| BINARY_FLOAT | REAL | 4バイト |
| BINARY_DOUBLE | FLOAT | 8バイト |
バッチインポート(複数テーブル)
テーブルが多数ある場合:
- 直接インポート: バッチエクスポートで SQL Server を選択し、全テーブルを一括投入
- 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 ファイル経由でのレビュー付き移行も可能です。