我正在尝试在 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 循环子句有问题吗?
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() 函数的输出。
sqlplus 不是一种语言,而是 Oracle 的一个接口,您可以在其中输入 SQL 或 PL/SQL。
在这种情况下,使用一个简单的 pl/sql 匿名块
begin
for i in 1..10
loop
-- some great stuff goes here
end loop;
end
/