下面是我的代码。
一个变量没有值(value)。另一个变量有一个值。在下面的代码中,我想打印变量是 即使在 var1
没有任何值的情况下也不相同。我该怎么做?
CREATE OR REPLACE PACKAGE BODY mypackagebody IS
PROCEDURE comparenull() IS
l_var1 mytable.mycolumn1%TYPE;
l_var2 mytable.mycolumn2%TYPE;
BEGIN
BEGIN
SELECT var1
,var2
INTO l_var1
,l_var2
FROM mytable;
EXCEPTION
WHEN no_data_found THEN
var1 := NULL;
var2 := NULL;
END;
/* At this point var1 is NOT having any value and var2 is having a value.*/
/* The below if condition is returing false. But, I wanted to go inside the if condition and print that the var values are not same*/
IF var1 <> var2
THEN
dbms_ouput.put_line('var1 and var2 are not same');
END IF;
END comparenull;
END mypackagebody;
请您参考如下方法:
我认为您需要一个NULL
安全比较。在 Oracle 中,您可以使用多个条件:
IF var1 <> var2 OR
(var1 is null and var2 is not null) OR
(var1 is not null and var2 is null)