关于procedure or function 返回的记录集不能select的问题!!!

fi9 2004-03-08 06:18:37
现在有这么一个问题:
统计一批记录,然后再返回统计的记录集回来;现在的是问题是怎么通过select之类的语句来出其结果?!或者有什么更加好的方法!?
附我现在写的一段:
create or replace package myp is
type r_my_record is record (a1 ....);
type t_my_table is table of r_my_record ...;
....

create or replace package body myp is
function myf(param char(2)) return t_my_table is
i integer := 0;
a integer;
b integer;
...
mytable t_my_table;
cursor c_my is select aa from bb;
begin
open cursor;
loop
fetch cursor into a;
select sum(*) into b from bb where no=a;
....
mytable(i).a := a;
....
i := i + 1;
end loop;
return mytable;
end;
end;

当我created后,我用select myp.myf('0') from dual;来执行说无效的类型!!?!(主要是返回来的mytable select不能识别!)

不知道哪位高人知道!?或者有什么更妙的方法!?请多指点!谢谢!!!
...全文
82 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
gz
fi9 2004-03-25
  • 打赏
  • 举报
回复
如果OPEN p_c FOR select COL1,COL2 from TABLE_NAME;返回的是多条记录集是否可以呢?!
sanoul 2004-03-25
  • 打赏
  • 举报
回复
gz
洪十二 2004-03-25
  • 打赏
  • 举报
回复
CREATE OR REPLACE PACKAGE p_test
AS
TYPE myrctype IS REF CURSOR;
PROCEDURE a ( p_c OUT myrctype);
END p_test;
/

CREATE OR REPLACE PACKAGE BODY p_test
AS
PROCEDURE a ( p_c OUT myrctype)
IS
BEGIN
OPEN p_c FOR select COL1,COL2 from TABLE_NAME;
END A;
END p_test;
/

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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