- PR -

OracleのNULL判断

1
投稿者投稿内容
パンダ
ベテラン
会議室デビュー日: 2004/03/24
投稿数: 59
投稿日時: 2004-08-24 19:26
Oracleのストアードを開発しています。
以下の時、処理Bが処理されます
気持ちとしては処理Aが処理されて欲しいのですが、なぜ処理Bが
処理されるか分かりません。
単純な事だとは思いますが・・・。

IF (null <> 'aaa') THEN
 処理A;
ELSE
 処理B;
END IF;
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-08-24 19:29
引用:

パンダさんの書き込み (2004-08-24 19:26) より:
IF (null <> 'aaa') THEN
 処理A;
ELSE
 処理B;
END IF;


一瞬何語かと思った…
nullは直接比較できないので、nullを確認する構文を使用する必要があると思います。


[ メッセージ編集済み 編集者: なちゃ 編集日時 2004-08-24 19:33 ]
永井和彦
ぬし
会議室デビュー日: 2002/07/03
投稿数: 276
お住まい・勤務地: 東京都
投稿日時: 2004-08-24 19:46
引用:

パンダさんの書き込み (2004-08-24 19:26) より:
Oracleのストアードを開発しています。
以下の時、処理Bが処理されます
気持ちとしては処理Aが処理されて欲しいのですが、なぜ処理Bが
処理されるか分かりません。
単純な事だとは思いますが・・・。

IF (null <> 'aaa') THEN
 処理A;
ELSE
 処理B;
END IF;




http://jibun.atmarkit.co.jp/fengineer/rensai/omgdb03/omgdb01.html
内、「論理条件の作成」に記述がありますが、OracleでNULLの扱いが特殊なためです。

あと、Database Expert 会議室との方が、今回の質問の場所としては適切だと思います。
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2004-08-24 19:46
if hogehoge is null then
piyopiyo


で判定できます。
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2004-08-24 19:46
IF VAR <> 'aaa' OR VAR IS NULL THEN
 処理A;
ELSE
 処理B;
END IF;

とすれば変数 VAR が NULL のときに処理Aが実行されます。
1

スキルアップ/キャリアアップ(JOB@IT)