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