我有一个看起来像这样的PL / SQL块:
declare
L_Count number := 10;
begin
if L_Count > 0then
dbms_output.put_line('l_Count > 0');
else
dbms_output.put_line('l_Count <= 0');
end if;
exception
when others then
dbms_output.put_line('exception occurred');
end;
请注意第四行包含0then
而不是0 then
。
使用PL / SQL-Developer,我可以将此块作为SQL语句执行,实际输出l_Count > 0
。使用“程序窗口”并对其进行编译,PL / SQL-Developer会出现以下错误:
Unable to perform operation due to errors in source code
该语句如何执行但不能编译?
感谢您的提示!
答案 0 :(得分:1)
执行和编译是两个不同的事情。代码块是一个非同步块,无法编译。但是,您可以执行该块。执行会显示 l_Count&gt; 0 强>
谢谢, 阿迪亚
答案 1 :(得分:1)
这种行为不是我所期望的。但是,PL / SQL Developer SQL Window
和Command Window
模式都与SQL*Plus
行为一致地执行此操作。所以,这是: