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の代わりに を含む 4 行目に注意してください0 then

PL/SQL-Developer を使用して、このブロックを SQL ステートメントとして実行し、実際に を出力できますl_Count > 0。「プログラム ウィンドウ」を使用してこれをコンパイルすると、PL/SQL 開発者は次のエラーを表示します。

Unable to perform operation due to errors in source code

このステートメントはどのように実行できますが、コンパイルはできませんか?

ヒントをありがとう!

4

2 に答える 2

1

実行とコンパイルは 2 つの別個のものです。コード ブロックは匿名ブロックであり、コンパイルできません。ただし、ブロックを実行できます。実行すると、l_Count > 0が表示されます。

ありがとう、アディティア

于 2013-09-20T12:16:31.020 に答える
1

動作も私が期待するものではありません。ただし、PL/SQL 開発者SQL WindowCommand Windowモードの両方が、どのように動作するかに一貫してこれを実行しますSQL*Plus。したがって、これは次のいずれかです。

  1. バグではない、または
  2. Oracle のバグですが、Allround Automations のバグではありません。
于 2013-10-03T16:41:57.980 に答える