假设我声明2个timestamp变量。可以说
DECLARE
var_t1 timestamp :=null;
var_t1 timestamp :=null;
BEGIN
---Suppose if i assign a timestamp to var_t1 .
select some_date into var_t1 from sometable where id='some_id';
--IF(var_t2<>var_t2) , this will be always false .
IF(var_t1 <> var_t2 ) THEN
dbms_output.put_line('Inside if');
END IF;
END;
如果任何一个变量为null,则始终返回false。
如果任何一个变量为null,则始终返回false。
您正在将一个值与NULL进行比较。它既不是TRUE也不是FALSE。这是一个三值逻辑,未知。
更有意义的代码是:
IF a <> b or (a is null and b is not null) or (a is not null and b is null)
THEN
UPDATE添加一个示例。
SQL> set serveroutput on
SQL> DECLARE
2 A NUMBER;
3 b NUMBER;
4 BEGIN
5 A :=NULL;
6 B :=10;
7 IF a <> b OR (a IS NULL AND b IS NOT NULL) OR (a IS NOT NULL AND b IS NULL) THEN
8 dbms_output.put_line('False');
9 END IF;
10 END;
11 /
False
PL/SQL procedure successfully completed.
SQL>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句