Toad:如何循环 select 的结果集

Toad: how to loop a resultset of select

我正在使用 Toad,有一个名为 MyTable 的 table,它有一个名为 INFO:
的列 信息
abcd
efgh
ijkl

我需要的是把INFO的元素一个一个拿过来做任务。所以我想我需要像下面这样的东西:

foreach (select INFO from MyTable)
    print
end

我试过 Google,看来我应该使用 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;

但是我得到一个错误:

cursor cr is
Error at line 3
ORA-00900: invalid SQL statement
Script Terminated on line 3.

显然您想执行一个 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;