エンタープライズ:特集 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特別企画]
知っておきたいデータベース移行術
「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]