エンタープライズ:特集 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]