我想檢查變量是否爲空。如果它爲空,那麼我想爲該變量設置一個值:檢查plsql中的變量是否爲空
//data type of var is number
if Var = null then
var :=5;
endif
但是我在其中發生錯誤。我如何檢查一個變量是否爲空?
我使用Oracle數據類型
我想檢查變量是否爲空。如果它爲空,那麼我想爲該變量設置一個值:檢查plsql中的變量是否爲空
//data type of var is number
if Var = null then
var :=5;
endif
但是我在其中發生錯誤。我如何檢查一個變量是否爲空?
我使用Oracle數據類型
if var is NULL then
var :=5;
end if;
使用IS NULL
的使用,如果var爲空
切記要小心在PL/SQL條件子句空爲空是永遠大於,小於,等於或不等於任何東西。避免它們的最好方法是使用nvl。
例如
declare
i integer;
begin
if i <> 1 then
i:=1;
foobar();
end if;
end;
/
永不熄滅的,如果子句中。
這些都行得通。
if 1<>nvl(i,1) then
if i<> 1 or i is null then
的另一種方法:
var := coalesce (var, 5);
COALESCE是Oracle的NVL函數的ANSI當量(或多或少)。
在PL/SQL中,不能使用'='或'<>'等運算符來測試NULL
,因爲所有與NULL
的比較都返回NULL
。要與NULL
進行比較,您需要使用特殊運營商IS NULL
或IS NOT NULL
,這些運營商正是爲此目的而使用的。因此,而不是寫
IF var = NULL THEN...
你應該寫
IF VAR IS NULL THEN...
在你給你也有使用NVL
內置功能選項的情況。 NVL
有兩個參數,第一個是變量,第二個是值(常量或計算)。 NVL
查看它的第一個參數,如果它發現第一個參數是NULL
,則返回第二個參數。如果NVL
的第一個參數不是NULL
,則返回第一個參數。所以,你可以重寫
IF var IS NULL THEN
var := 5;
END IF;
爲
var := NVL(var, 5);
我希望這有助於。
我等了5年才告訴你這個,但是謝謝你的回答。 – 2014-05-30 19:30:20