Stored procedures NULL在存储过程中做什么?

Stored procedures NULL在存储过程中做什么?,stored-procedures,plsql,Stored Procedures,Plsql,因此,我正在查看Oracle(PLSQL)存储过程中的一些代码,发现了一些我不理解的东西 if lv_var1= ' ' then null; else begin..... 这只是说空的那一行 它有什么作用(如果有的话) 我猜它存在于整个过程之外,但我找不到任何关于它的信息。它没有任何作用。在PLSQL中,不能有空条件,这样做根本无法编译: if lv_var1= ' ' then --do nothing else begin.....` 通过在那

因此,我正在查看Oracle(PLSQL)存储过程中的一些代码,发现了一些我不理解的东西

  if lv_var1= ' ' then
     null;
  else
     begin.....
这只是说空的那一行

它有什么作用(如果有的话)


我猜它存在于整个过程之外,但我找不到任何关于它的信息。

它没有任何作用。在PLSQL中,不能有空条件,这样做根本无法编译:

if lv_var1= ' ' then
  --do nothing
else
    begin.....`
通过在那里设置null,条件不是空的,因此过程会编译,但如果到达该分支,则不会发生任何事情

可以这样写:

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

编辑:正如Boneist正确指出的,上述替代方案不考虑空值,这可以通过nvl实现,例如
nvl(lv_var1,'empty')!='或<代码>或<代码>条件,例如<代码>lv_var1!=''或者lv_var1为空

它什么也不做。在PLSQL中,不能有空条件,这样做根本无法编译:

if lv_var1= ' ' then
  --do nothing
else
    begin.....`
通过在那里设置null,条件不是空的,因此过程会编译,但如果到达该分支,则不会发生任何事情

可以这样写:

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

编辑:正如Boneist正确指出的,上述替代方案不考虑空值,这可以通过nvl实现,例如
nvl(lv_var1,'empty')!='或<代码>或<代码>条件,例如<代码>lv_var1!=''或者lv_var1是空的

它是a。它实际上只是表示“什么也不做”。它在开发阶段很有用(在IF语句的所有分支中编写逻辑之前,您可能需要检查代码编译),而且它还可以作为一个路标,表明您认识到一个条件是可能的,但您不想做任何工作。它实际上只意味着“什么也不做”。它在开发阶段很有用(在IF语句的所有分支中编写逻辑之前,您可能需要检查代码编译),并且它还可以作为一个路标,表明您认识到一个条件是可能的,但您不想做任何工作。如果lv_var1不为null,则只能以第二种形式重写它。您必须将其更改为包含空值(很可能通过NVL)。不客气。有时候,纯粹从信息的角度来看,它是有用的。正如Boneist正确指出的那样,如果值为null,我建议的替代方案将不起作用,因此答案已相应更新。只有在lv_var1不为null的情况下,它才能以第二种形式重写。您必须将其更改为包含空值(很可能通过NVL)。不客气。有时候,纯粹从信息的角度来看,它是有用的。正如Boneist正确指出的那样,如果该值为null,我建议的替代方案将不起作用,因此答案已相应更新。