エンタープライズ:特集 | 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で適用) |
関連リンク
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]