我想检查一个变量是否为null.如果它为null,那么我想为该变量设置一个值:
//data type of var is number
if Var = null then
var :=5;
endif
Run Code Online (Sandbox Code Playgroud)
但我发现错误.如何检查变量是否为空?
我正在使用oracle数据类型
OMG*_*ies 18
使用:
IF Var IS NULL THEN
var := 5;
ENDIF;
Run Code Online (Sandbox Code Playgroud)
Oracle 9i +:
var = COALESCE(Var, 5)
Run Code Online (Sandbox Code Playgroud)
其他替代品:
var = NVL(var, 5)
Run Code Online (Sandbox Code Playgroud)
参考:
Bob*_*ica 15
在PL/SQL中,您不能使用诸如'='或'<>'之类的运算符来测试,NULL因为所有比较都要NULL返回NULL.要比较某些东西,NULL你需要使用特殊的操作符,IS NULL或者IS NOT NULL正是为了这个目的.因此,而不是写作
IF var = NULL THEN...
Run Code Online (Sandbox Code Playgroud)
你应该写
IF VAR IS NULL THEN...
Run Code Online (Sandbox Code Playgroud)
在您给出的情况下,您也可以选择使用NVL内置功能. NVL接受两个参数,第一个是变量,第二个是值(常量或计算). NVL查看它的第一个参数,如果它发现第一个参数是NULL,则返回第二个参数.如果第一个参数NVL不是NULL,则返回第一个参数.所以你可以改写
IF var IS NULL THEN
var := 5;
END IF;
Run Code Online (Sandbox Code Playgroud)
如
var := NVL(var, 5);
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助.