8

Oracle sqlplus インターフェイスで for ループを作成しようとしています。Enter キーを押してループ ステートメントを記述すると、エラーが発生します。

SQL> for i in 1..10 loop
SP2-0734: unknown command beginning "for i in 1..." - rest of line ignored.
SQL>

for ループ句に何か問題がありますか?

4

2 に答える 2

18

forループはPL/SQL構造です。PL/SQLをBEGIN/ENDブロックでラップしてみてください。

変数を宣言する必要がある場合は、DECLAREから始めてください。このようなもの:

set serveroutput on
begin
  for a in 1..10 loop
    dbms_output.put_line('a='||to_char(a));
  end loop;
end;
/

お役に立てば幸いです。

PS setserveroutputonはSQL*Plusコマンドであり、PL/SQLの一部ではないことに注意してください。出力をオンにするだけなので、dbms_output.put_line()関数からの出力が表示されます。

于 2012-09-10T11:29:46.123 に答える
6

sqlplus は言語ではなく、SQL または PL/SQL を入力できる Oracle へのインターフェイスです。

この場合、単純な pl/sql 匿名ブロックを使用します

begin
  for i in 1..10
  loop
    -- some great stuff goes here

  end loop;
end
/
于 2012-09-10T11:27:10.943 に答える