什么是存储过程中的NULL?

时间:2018-04-11 10:21:04

标签: stored-procedures plsql

所以我在Oracle(PLSQL)存储过程中查看了一些代码,我发现了一些我不太了解的内容。

  if lv_var1= ' ' then
     null;
  else
     begin.....

只是说明 null

的行

它做了什么(如果有的话)。

我的猜测是,它存在于整个程序中,但我无法找到相关信息。

1 个答案:

答案 0 :(得分:3)

它没有做任何事情。在PLSQL中你不能有一个空的条件,做这样的事情根本就不会编译:

if lv_var1= ' ' then
  --do nothing
else
    begin.....`

通过在那里使用null,条件不为空,所以程序编译但是如果到达那个分支则没有任何反应。

它可能会被写成这样:

if lv_var1 != ' ' then
  begin...
end if;

编辑:正如Boneist正确指出的那样,上面的选择并没有考虑空值,这可以用nvl来完成,例如nvl(lv_var1,'empty') != ' 'OR条件,例如lv_var1 != ' ' OR lv_var1 IS NULL