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

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

JAVA Developer 2003年9月号より転載

●関数の移行
 SQL ServerとOracle9iで持っている数値関数に大きな差はありません。一般的なJ2EEアプリケーションで使用される範囲であれば、まったく問題なくOracle9iへ移行できます。その場合、一部の関数において名称が異なりますので、その名称変更が必要です。

・数値関数
 SQL Serverでは、ラジアン値を角度に変換するdegrees関数やpi関数など、固有の数値関数をサポートしています。

 これらの数値関数は演算によって求めることができる値が多く、Oracle9iへの移行の際は演算式に展開するとよいでしょう。円周率を表すpi関数は、SQL Serverでは固定値3.14159265358979を返すようになっています。これは絶対変化しない値ですから、そのままSQL文に定数として代入し(あるいはpiなどの変数を定義して代入し)、それを使うことで移行できます。

 数値関数の中で注意したいのは乱数の取り扱いです。SQL ServerでいうRAND関数に相当するものとして、Oracle9iではrandom関数を使用することができます。このrandom関数はOracle9iが準備している乱数ジェネレータrdbms_randomによって利用できる機能です。よって乱数の発生にはこの乱数ジェネレータrdbms_randomの初期化を行い、そのあとに、rdbms_random.random()と呼び出すことで、SQL ServerのRAND関数を移行できます。

表6 数値関数の移行
SQL Server 2000 Oracle9i
逆余弦 ACOS
逆正弦 ASIN
nの逆正接 ATAN
nとmの逆正接 ATN2 ATAN2
正接 TAN
正弦 SIN
余弦 COS
双曲線の余弦 COT COSH
ラジアン単位を角度に変換 DEGREES なし(計算式を適用)
円周率 PI 3.14159265358979
平方根 SQRT
指数値 EXP
絶対値 ABS
ある数値を下回らない最小の整数 CEILING CEIL
ある数値を超えない最大の整数 FLOOR
自然対数 LOG LN
10を底とする対数 LOG10 LOG(10)
余り %演算子 MOD
べき乗 POWER
乱数 RAND rdbms_random.random()
丸め ROUND
数の正負符号 SIGN
NULLの置換 ISNULL NVL
※Oracle9iのみがサポートする関数については掲載していません
※表中の「←」は、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]