1

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

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

谢谢你的提示!

4

2 回答 2

1

执行和编译是两个不同的东西。代码块是匿名块,无法编译。但是,您可以执行该块。执行会显示l_Count > 0

谢谢,阿迪亚

于 2013-09-20T12:16:31.020 回答
1

这种行为也不是我所期望的。但是,PL/SQL DeveloperSQL WindowCommand Window模式都按照行为方式执行此操作SQL*Plus。所以,这要么是:

  1. 不是错误,或者
  2. Oracle 错误,但不是 Allround Automations 错误。
于 2013-10-03T16:41:57.980 回答