エンタープライズ:特集 | 2003/07/25 18:19:00 更新 |
[Java Developer特別企画]2003年9月号
知っておきたいデータベース移行術「SQL Server→Oracle編」 (12/15)
JAVA Developer 2003年9月号より転載
・そのほかの関数
数値関数、文字関数、日付関数以外の関数として、集計関数やシステム関数が存在します。SQL Serverでよく使われる代表的なこれらの関数群は、Oracle9iでも準備されており移行できます。一部名称が異なるものが存在しますが、移行の際に困ることはありません。
表9 そのほかの関数の移行 | ||
SQL Server 2000 | Oracle9i | |
数値から文字列への変換 | CONVERT | TO_CHAR |
文字列から数値への変換 | CONVERT | TO_NUMBER |
日付から文字列への変換 | CONVERT | TO_CHAR |
文字列から日付への変換 | CONVERT | TO_DATE |
NULL ではない最初の式 | COALESCE | DECODE |
exp1=exp2の場合にNULLを返す | NULLIF | DECODE |
ユーザーのログインID番号 | SUSER_ID | UID |
ユーザーのログイン名 | SUSER_NAME | USER |
ユーザーのデータベースID番号 | USER_ID | UID |
ユーザーのデータベース名 | USER_NAME | USER |
現在のユーザー | CURRENT_USER | CURRENT_USER |
ハッシュインデックスに作成する値を得る | CHECKSUM | ハッシュ値のインデックス自動作成で可 |
平均 | AVG | ← |
行数 | COUNT | ← |
行数 | COUNT_BIG | COUNT |
最大 | MAX | ← |
最小 | MIN | ← |
標準偏差 | STDEV | STDDEV |
標準偏差 | STDEVP | STDDEV |
合計 | SUM | ← |
分散 | VAR | VARIANCE |
分散 | VARP | VARIANCE |
変換関数に関しては、SQL Serverで利用する場合すべてCONVERT関数に統一されていますが、Oracle9iではTO_CHAR、TO_NUMBER、TO_DATEとそれぞれ目的によって使い分けます。変換の例に従ってCONVERT関数をそれぞれの関数に置き換える必要があります。
データベースにはそのデータベースに強く依存した特殊な関数が存在します。SQL Serverの場合は、@記号や@@記号ではじまります。@@ではじまるSQL Serverの環境設定関数などはSQL Serverの機能に大きく依存する部分が多く、移植性を考えるとあまり利用すべきではありません。しかし、Oracle9iデータベースでもこれらは同じように実装されているものが多く、関数の意味を理解し、マニュアルを参照することで、そのほとんどは移行可能です。
表10 変換関数の使用例 | ||
SQL Server 2000 | Oracle9i | |
文字列"10"を数値の10へ | CONVERT(numeric, '10') | TO_NUMBER('10') |
数値の10を文字列"10"へ | CONVERT(char, 10) | TO_CHAR(10) |
文字列"24-JUL-03"を日付へ | CONVERT(datetime, '24-JUL-03') | TO_DATE('24-JUL-03') |
現在の日付を文字へ | CONVERT(char, GETDATE()) | TO_CHAR(sysdate) |
関連リンク
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]