“if xx> 0then”如何执行但不能编译?

时间:2013-09-20 06:46:04

标签: sql plsql plsqldeveloper

我有一个看起来像这样的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

该语句如何执行但不能编译?

感谢您的提示!

2 个答案:

答案 0 :(得分:1)

执行和编译是两个不同的事情。代码块是一个非同步块,无法编译。但是,您可以执行该块。执行会显示 l_Count&gt; 0

谢谢, 阿迪亚

答案 1 :(得分:1)

这种行为不是我所期望的。但是,PL / SQL Developer SQL WindowCommand Window模式都与SQL*Plus行为一致地执行此操作。所以,这是:

  1. 不是错误,或
  2. Oracle错误,但不是Allround Automations错误。