Microsoftのダウンロードセンタに
SQL Server Migration Assitant for
Oracle 2.0 Betaが出ていたので試してみました。図は都合上、あとから更新します。
ダウンロード:
SQL Server Migration Assistant for Oracle V2.0 Beta
必要環境:
あと、
Microsoftのソフトウェアにしてはめずらしく、
JRE 1.4.2が必要とされています。これは
JDBCで接続するためなんでしょう。
SQL Serverにも
JDBCで接続しているっぽいです(
JDBCのエラーが出た)。
インストール
- SSMAV2.0-Beta-341.zipを展開すると、SSMAExtPack-2.0.0.341-Beta.exeとSSMA-Setup-2.0.0.341-Beta.exeができます。SSMAExtPack-2.0.0.341-Beta.exeがSQL ServerとOracleの拡張キットのようで、これを追加しないとこのMigration Toolが動かないようです。Oracleではクライアントがインストールされているマシンから実行すればOK。SQL ServerはSQL Serverがインストールされているマシンで実行する必要があります。
補足として、Oracleに対して実行すると、いくつかエラーが出る場合があります。
- ORA-01918: ユーザー SSMA_USERは存在しません。
- ORA-29547: Javaシステム・クラスがありません: oracle/aurora/rdbms/Compiler
これらは無視してもかまいません。特にしたのエラーは私の環境ではJavaパッケージ入れていないから発生しています。通常はJavaパッケージ入れているはずなので、このエラーは起きないでしょう。
- SSMA-Setup-2.0.0.341-Beta.exeを実行して、任意のディレクトリにセットアップします。
- Migration Assistantを実行すると、ライセンスが必要であるというメッセージが表示されます。メッセージの中にあるリンクを起動して、.NET Passportにログインして、ライセンスファイルをダウンロードします。
- ダウンロードしたライセンスファイルをSQL Server Migration Assistantをインストールしたディレクトリにコピーします(既定ではc:\program files\Microsoft SQL Server Migration Assistantです)。
- refleshボタンを押すとライセンスファイル(ssma-license.key)を認識して使えるようになります。
使ってみた
4ペイン構成で、上半分が
Oracle,下半分が
SQL Serverのようです。エラーが発生すると、そのオブジェクトを教えてくれ、どんなエラーが発生したのか、htmlによるレポートを表示してくれます。
スキーマ単位で選択すれば、
スキーマに含まれるFunction,プロシージャ,表などなどを全部一括でチェックしてくれるので便利です。
SQL Serverに接続しなくても、
Oracleから移行するとき、どんな記述がエラーになるのだろう?という感じをつかむだけでも充分役に立ちます。私が作ったところはストアドプロシージャすら使っていないので(トリガくらい)、拍子抜けするくらい問題なくチェックが終了。
Oracle特有の
Javaのストアドプロシージャや
PL/SQLがどのように変換されるか興味あります(私の作ったところにはないので…)。