Execute Immediate能否返回一个结果集?100分送上

lcllcl987 2005-08-05 05:47:49
各位前辈:
我需要动态的执行一个select语句,得到他的结果集,然后根据得到的结果集,insert到一个table里面
现在的问题是我不知道怎么得到执行了Execute Immediate后的结果集:

iCount int;
vFlbh varchar2(2);
...
vSql:='select t.qxflbh,count(*) from mytable t where t.qxdjrdw=:vDw group by t.qxflbh';
Execute Immediate vSql into vFlbh,iCount using vDw; ---这句有问题

vSql执行后应该有3条记录,我怎么得到执行后的结果集?
我需要得到每条记录的vFlbh,iCount,然后进行insert操作.

100分送上


...全文
675 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lcllcl987 2005-08-08
  • 打赏
  • 举报
回复
加上ding定义申明:

type t_Cursor is REF CURSOR;
qxCursor t_Cursor;
heyixiang 2005-08-05
  • 打赏
  • 举报
回复
iCount int;
vFlbh varchar2(2);
...
vSql:='insert into <tablename> select t.qxflbh,count(*) from mytable t where t.qxdjrdw=:vDw group by t.qxflbh';
Execute Immediate vSql ;
liuyi8903 2005-08-05
  • 打赏
  • 举报
回复
表结构相同的话直接这样写:

SQL> DECLARE
2 BEGIN
3 EXECUTE IMMEDIATE 'insert into dd select * from aa';
4 END;
5 /

PL/SQL 过程成功完成

SQL> commit;

提交完成

SQL> select * from dd;

ID LJ Y
---------- ---------- -----------
1 2 2005-8-1
3 5 2005-8-4
1 2 2005-8-1
3 5 2005-8-4

SQL>
UandM 2005-08-05
  • 打赏
  • 举报
回复
然后
loop
fetch yourcursor into iCount,vFlbh;
exit when yourcursor%notfound;
....insert操作
end loop;
UandM 2005-08-05
  • 打赏
  • 举报
回复
用cursor。
open cursor for vSql using vDw;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧