置換変数でNULLが考慮されない
845902Mar 9 2011 — edited Mar 9 2011SQLPlusを使っています。
下のプログラムを実行させ、&valに何も入力せずEnterを押すと
エラーになってしまいます。
DECLARE
i NUMBER := &val;
BEGIN
IF i = 0 OR i IS NULL THEN
DBMS_OUTPUT.PUT_LINE('0またはNULLです');
ELSIF i = 1 OR i = 2 THEN
DBMS_OUTPUT.PUT_LINE('1または2です');
ELSE
DBMS_OUTPUT.PUT_LINE('NULL,0,1,2ではありません');
END IF;
END;
/
自分はNULLにしているつもりなのですがどうやら考慮されていないらしいです。
&valがNULLのときELSE句に飛ぶようにするのはどうしたらいいでしょうか?
詳しい方ご教授お願いします。
エラーメッセージ等
valに値を入力してください:
旧 2: i NUMBER := &val;
新 2: i NUMBER := ;
i NUMBER := ;
*
行2でエラーが発生しました。:
ORA-06550: 行2、列14:
PLS-00103: 記号";"が見つかりました。 次のうちの1つが入るとき:
( - +
PC環境はVista,Oracle11gです。