エンタープライズ:特集 | 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 |
※表中の「←」は、SQL Server 2000と同じことを意味します
関連リンク
JAVA Developer
定期購読のご案内
バックナンバー販売協力店
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]