如何在Oracle sqlplus中编写for循环?

时间:2012-09-10 11:23:24

标签: sql oracle

我正在尝试在Oracle sqlplus界面中编写for循环。当写一个循环语句按下回车时,我收到一个错误:

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

我的for循环子句有问题吗?

2 个答案:

答案 0 :(得分:17)

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请注意,set serveroutput on是一个SQL * Plus命令,而不是PL / SQL的一部分。它只是打开输出,所以你会看到dbms_output.put_line()函数的输出。

答案 1 :(得分:6)

sqlplus不是一种语言,而是Oracle的接口,您可以在其中输入SQL或PL / SQL。

在这种情况下,请使用简单的pl / sql匿名块

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

  end loop;
end
/