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

jra*_*ara 7 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>
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*bak 17

For循环是一个PL/SQL结构.尝试在BEGIN/END块中包装PL/SQL.

如果需要声明变量,请以DECLARE开头.像这样的东西:

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

希望有所帮助.

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

  • 你在说什么?他正在使用SQL*Plus,尝试执行PL/SQL,这正是我的问题所回答的,不是吗? (5认同)

tbo*_*one 6

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

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

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

  end loop;
end
/
Run Code Online (Sandbox Code Playgroud)