在甲骨文中这两者有所不同.
elsif
else if
Run Code Online (Sandbox Code Playgroud)
两者都执行正常,没有错误.
这两者有什么区别.
Jus*_*ave 12
IFPL/SQL中的语句结构为
IF <<some condition>>
THEN
<<do something>>
ELSIF <<another condition>>
THEN
<<do something else>>
ELSE
<<do a third thing>>
END IF;
Run Code Online (Sandbox Code Playgroud)
其中ELSIF和ELSE都是可选的.如果您看到一个ELSE IF,则表示有人在块中创建嵌套IF语句(带嵌套END IF)ELSE.那是
IF <<some condition>>
THEN
<<do something>>
ELSE
IF <<another condition>>
THEN
<<do something else>>
END IF;
END IF;
Run Code Online (Sandbox Code Playgroud)
如果您愿意,可以根据需要深入嵌套PL/SQL块.但是,一般情况下,如果您没有嵌套超出必要的内容,您的代码将更加清晰.除非这里有令人信服的理由来创建嵌套IF语句,否则您更有可能使用IF包含一个或多个ELSIF块的单个语句(或者甚至更好的a CASE)生成可读代码.另外,通过这种方式,您不会尝试计算END IF关闭所有嵌套IF语句所需的所有语句.
ELSIF不需要匹配的END IF.如果不满足第一IF的条件,则检查ELSIF条件.
ELSE IF需要匹配的END IF,因为启动了新的IF块.
参考文献:
Oracle®DatabasePL/SQL语言参考上的PL/SQL控制语句