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;
我正在使用 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;