エンタープライズ:特集 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
※Oracle9iのみがサポートする関数については掲載していません

 変換関数に関しては、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特別企画]
知っておきたいデータベース移行術
「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]