我正在使用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行。
答案 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;