エンタープライズ:特集 2003/07/25 18:19:00 更新

[Java Developer特別企画]2003年9月号
知っておきたいデータベース移行術「SQL Server→Oracle編」 (2/15)

JAVA Developer 2003年9月号より転載

●データベース移行に伴う影響範囲
 SQL Server 2000からOracle9iへのデータベースの移行は、データベースを利用しているアプリケーション、あるいは関係するシステム全体に大きく影響します。その影響の範囲は、データベースに接続しているアプリケーションすべてが対象です。一般的にデータベースの移行では、次のようなことを考慮する必要があります。

・ディスク装置(クラスタリングに必要な環境も含む)
・ハードウェアおよびOS
・バックアップソフトウェア(およびバックアップハードウェア)
・状態監視ソフトウェア
・開発ツール
・ODBC接続
・JDBC接続
・.NETデータプロバイダ接続

 Java技術者なら、まず気になるのがJDBCドライバではないでしょうか。

 JDBCドライバは、SQL Server 2000の場合、マイクロソフトのホームページからダウンロードできます。Oracle9iでは製品にも含まれていますがこちらも日本オラクルのホームページからダウンロードすることができます。

 それぞれのJDBCドライバの比較を行ってみます。どちらのJDBCドライバもJDBC2.0の仕様を確実に満たしており、追加仕様であるいくつかの主要機能もサポートされています。ですから、Javaアプリケーションから見た機能はそれほど変化しないものと思われます。むしろOracle9iに移行した場合は、JDBCドライバのタイプの選択肢が増えるなど環境の適用範囲が広くなります。

表1 JDBCドライバの比較
SQL Server 2000 Oracle9i
JDBCドライバタイプ Type4 Type2(OCI)
Type4(Thin)
Server-Side JDBC
サポートOS Windows
Linux
AIX
HP-UX
Solaris
Windows
Linux
AIX
HP-UX
Solaris
サポートJDK 1.1.8
1.2
1.3
1.1x
1.2x
1.3x
1.4
サポートJDBCバージョン 2.0 2.0
3.0の一部
JNDI
コネクションプーリング機能
XAトランザクション
Unicodeサポート
更新可能なResultSet

 実際にSQL Server 2000からOracle9iへの移行に伴い、JDBC接続を行う場合のデータベースの接続方法が変わることになります。この部分のコーディング変更が必要です。コネクションプーリングなどを使用しない最も標準的なJDBC接続部分のコーディング例は、リスト1のとおりです。

リスト1 JDBCによるデータベース接続の違い

「SQL Server 2000」
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn = DriverManager.getConnection(
   "jdbc:microsoft:sqlserver://myhost:1433;DATABASENAME=dbname",
   "user","password");

「Oracle9i」
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
   "jdbc:oracle:thin:@myhost:1521:dbname",
   "user", "password");

 そのほかの項目についても整理しておきます。

 OSに関しては、基本的にSQL Server 2000が動作するOSであるWindows 2000およびWindows Server 2003の両OS上で、Oracle9iデータベースは動作します。よって、このOSが動作するハードウェアおよび接続されているディスク装置も動作は可能なはずです。

 ODBCドライバ接続に関しては、SQL Server 2000およびOracle9iともに準備されており、接続は問題がありません。

 そのほか、.NETを使ってSQL Server 2000に接続している場合は、移行したOracle9iでも.NET接続が正しく行われるように日本オラクルのホームページから「Oracle Data Provider for .NET」をダウンロードして利用します。

●移行に伴う情報やツール
 Oracle9iにスムーズに移行するためのツールについて紹介します。米国OTN(Oracle Technology Network)サイトには、Oracle Migration Workbench(http://otn.oracle.com/tech/migration/workbench/content.html)が存在します。

 このMigration Workbenchでは、SQL Server 2000、SQL Server 6.5/7.0およびAccess、Sybase、Informix、MySQL、DB2 UDBなどのデータベースからOracle9iに移行するための情報が含まれています。このMigration Workbenchは、日本ではInformix用が提供されています。SQL Server 2000用の国内提供は、いまのところ未定です。

[JAVA Developer特別企画]
知っておきたいデータベース移行術
「SQL Server→Oracle編」
(1)データベース移行に伴う影響範囲〜JDBCドライバ
(2)移行の実際〜認証/権限と命名規則
(3)データ型の移行〜数値型
(4)データ型の移行〜文字型
(5)データ型の移行〜日付データ型
(6)データ型の移行〜ラージデータ型/そのほかの特殊な型
(7)表定義に関する情報の移行
(8)関数の移行〜数値関数
(9)関数の移行〜文字関数
(10)関数の移行〜日付関数
(11)関数の移行〜そのほかの関数
(12)演算子の移行
(13)文法/Transact-SQL文/索引/ビュー/トリガーなどの移行
(14)メリットと注意事項〜移行ポイントを再確認

関連リンク
▼JAVA Developer
▼定期購読のご案内
▼バックナンバー販売協力店

JAVA Developer9月号表紙 Javaコレクションのマスターを目指せ!
JAVA Developer 9月号

大特集
病みつき! テストファースト

特集2 BEA WebLogic
[特別企画]
・コレクションフレームワークとデータ構造
・知っておきたいデータベース移行術
 「SQL Server→Oracle編」
・Webアプリケーションセキュリティ

前のページ | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 次のページ

[西脇 資哲,JAVA Developer]