Toad:如何循环select的结果集

时间:2016-07-14 07:22:06

标签: sql select foreach sqlplus toad

我正在使用Toad,并且有一个名为MyTable的表,它有一个名为INFO的列:
INFO
ABCD
EFGH
IJKL

我需要的是逐一采用INFO的元素并执行任务。所以我想我需要以下内容:

foreach (select INFO from MyTable)
    print
end

我试过谷歌,似乎我应该使用CURSOR。所以我试着这样:

DEF msg varchar2(15);

cursor cr is
    select info from mytable;

begin
  OPEN cr;
  loop
    FETCH cr into msg;
    exit when cr%NOTFOUND;
    -- do job
  end loop;
  CLOSE cr;
end;

但我收到了一个错误:

  

光标cr是
  第3行的错误
  ORA-00900:无效的SQL语句
  脚本终止于第3行。

1 个答案:

答案 0 :(得分:1)

显然,您希望执行PL/SQL块,但DEF不是PL / SQL的一部分。 尝试执行以下块:

declare
msg varchar2(15);
cursor cr is
    select info from mytable;
begin
  OPEN cr;
  loop
    FETCH cr into msg;
    exit when cr%NOTFOUND;
    -- do job
  end loop;
  CLOSE cr;
end;

您也可以使用cursor for loop statement

执行相同操作
begin
  for rec in (
    select info from mytable
  ) loop
      -- do job (you can reference info by using rec.info )
  end loop;
end;