エンタープライズ:特集 | 2003/07/25 18:19:00 更新 |
[Java Developer特別企画]2003年9月号
知っておきたいデータベース移行術「SQL Server→Oracle編」 (13/15)
JAVA Developer 2003年9月号より転載
●演算子の移行
演算子はSQL文で多用されるので、SQL文を含む部分を移行する場合には注意が必要になります。演算子には算術演算、比較演算などの種類があり、それぞれSQL99で規格化が進んでいるため、ほとんど移行に困ることはありません。移行時に注意する演算子を解説します。
文字列の連結に関しては、SQL Serverは+演算子を使いますが、Oracle9iは||演算子を使います。
SQL Server固有の演算子としてはビット演算子があります。このビット演算子はOracle9iにはありませんので、ビット演算をしてくれるプログラムを別途作成する必要があります。
また、パターン検索で使用するLIKE演算子では、ワイルドカードとして「%」記号を使います。この記号はそのままOracle9iで使用できますが、SQL Serverでは正規表現の「[]」記号や「^」記号などの一部を利用できます。正規表現については解説しませんが、なにげなくSQL文に使用している場合があり、SQL文の変更が必要なケースも発生します。
表11 演算子の移行 | |||
種類 | 演算子 | SQL Server 2000 | Oracle9i |
算術演算 | 加算 | + | ← |
減算 | - | ← | |
乗算 | * | ← | |
除算 | / | ← | |
剰余 | % | mod関数 | |
代入 | 変数への値の代入 | SET | := |
文字列連結 | 文字列の連結 | + | || |
ビット演算 | 論理積 | & | なし |
論理和 | | | なし | |
排他的論理和 | ^ | なし | |
論理演算 | 比較の集合すべて | ALL | ← |
両方の論理式の成立 | AND | ← | |
どちらか一方の論理式の成立 | ANY | ← | |
範囲内ならば成立 | BETWEEN | ← | |
含まれていなければ成立 | EXISTS | ← | |
式リストの1つに等しければ成立 | IN | ← | |
パターンに一致すれば成立 | LIKE | ← | |
値の反転 | NOT | ← | |
いずれかが成立すれば成立 | OR | ← | |
集合の一部が成立すれば成立 | SOME | ← | |
比較演算 | 等しい | = | ← |
より大きい | > | ← | |
より少ない | < | ← | |
以上 | >= | ← | |
以下 | <= | ← | |
等しくない | !=,<>,^= | ← | |
セット内のメンバにある | IN | ← | |
セット内のメンバにない | NOT IN | ← | |
セット内の値 | ANY,SOME | ← | |
パターンの一致 | LIKE | ← | |
パターンの不一致 | NOT LIKE | ← | |
a と b の間の値 | BETWEEN a AND b | ← | |
間以外の値 | NOT BETWEEN | ← | |
存在する値 | EXISTS | ← | |
存在しない値 | NOT EXISTS | ← | |
NULLの判断 | IS NULL,IS NOT | ← |
関連リンク
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]