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

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

JAVA Developer 2003年9月号より転載

・文字関数
 文字関数は、特殊な2つのケースを除いてOracle9iへの移行は名称の変更のみで可能です。一部Oracle9iで提供されていない関数が存在した場合でも、代用関数がありますので、そちらを使って対応できます。

 特殊な2つのケースとは、DIFFERENCE関数とREVERSE関数です。

 DIFFERENCE関数はSOUNDEX関数に近いもので、2つの文字列の発音を比較しその差を数値化するものです。しかし、DIFFERENCE関数の戻り値の範囲は0〜4までしかなく(4が発音の完全一致を意味)、SOUNDEX関数のアルゴリズムをよく理解したアプリケーションであれば、そのアルゴリズムを使った分析/比較を行ったほうがよいでしょう。

 REVERSE関数は与えられた文字列をすべて逆順にします。Oracle9iにはこの関数は存在しません。これについてはSQLではなく、Javaプログラミングで代替して移行する必要があります。

表7 文字関数の移行
SQL Server 2000 Oracle9i
ASCII コードへの変換 ASCII ←
文字列の連結 +演算子 || 演算子、CONCAT
ASCII コードから文字への変換 CHAR CHR
文字列の中の開始位置を戻す(左から) CHARINDEX INSTR
文字列を小文字へ変換 LOWER ←
文字列を大文字へ変換 UPPER ←
先行する空白の削除 LTRIM ←
後続する空白の削除 RTRIM ←
文字列のパターン開始位置 PATINDEX INSTR
文字列を複数回繰り返す REPLICATE RPAD
文字列の発音を表示 SOUNDEX ←
連続するスペースの文字列 SPACE RPAD
数値データから文字列への変換 STR TO_CHAR
部分文字列 SUBSTRING SUBSTR
文字列の置き換え REPLACE ←
文字列の置き換え(指定位置から指定文字数分) STUFF なし(文字列演算の組み合わせで適用)
文字列の長さ DATALENGTH LENGTH
文字列の長さを返す LEN LENGTH
NULL値の置き換え ISNULL NVL
文字列の発音の違いを数値化 DIFFERENCE なし
文字列の左から指定された文字数を返す LEFT なし(SUBSTRで適用)
文字列を逆にする REVERSE なし
文字列の右から指定された文字数を返す RIGHT なし(SUBSTRで適用)
※Oracle9iのみがサポートする関数については掲載していません

[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]