8

我正在尝试在 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 循环子句有问题吗?

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

于 2012-09-10T11:29:46.123 回答
6

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

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

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

  end loop;
end
/
于 2012-09-10T11:27:10.943 回答