Oracle中table类型数据赋值给cursor

D_A_O 2018-01-31 11:21:55
在Type中创建了一个类型:
create or replace type bb_ptyxztqk_Table as table of bb_ptyxztqk_type;
里面放自定义的record类型,现在要将table中的数据放置到cursor中,怎么弄?
这样弄不行:
open cur for
select r_index, r_name, r_this, r_last, r_minus
from table(cast(obj_type_tab AS bb_ptyxztqk_type));
求大神指点!
整体代码:
类型:
create or replace type bb_ptyxztqk_Table as table of bb_ptyxztqk_type;
create or replace type bb_ptyxztqk_Type as object(
d_index number,
d_name varchar2(100),
d_this number,
d_last number,
d_minus number
);
sql:
PROCEDURE pro_getdata(enddate in varchar2, cur out type_cursor) is
Type RecType Is Record(
r_index number,
r_name varchar2(100),
r_this number,
r_last number,
r_minus number);
Type TabType Is Table Of RecType Index By Binary_Integer;
myTab TabType;
obj_type_tab bb_ptyxztqk_table := bb_ptyxztqk_table();
l_index number := 1;
begin
if (l_index = 1) then
myTab(l_index).r_index := 1;
myTab(l_index).r_name := '上线单位';
myTab(l_index).r_this := 123;
myTab(l_index).r_last := 456;
myTab(l_index).r_minus := 333;
end if;
l_index := myTab.First;
for l_in in l_index .. myTab.count Loop
obj_type_tab.EXTEND;
obj_type_tab(obj_type_tab.LAST) := bb_ptyxztqk_type(myTab(l_index).r_index,
myTab(l_index).r_name,
myTab(l_index).r_this,
myTab(l_index).r_last,
myTab(l_index).r_minus);
l_index := myTab.Next(l_index);
end Loop;
open cur for
select r_index, r_name, r_this, r_last, r_minus
from table(cast(obj_type_tab AS bb_ptyxztqk_type));
end;
...全文
692 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
坐等大神 ,open cursor for 后面用plsql表 没见过。
liu志坚 2018-02-01
  • 打赏
  • 举报
回复
DECLARE TYPE emp_cur IS REF CURSOR RETURN emp%ROWTYPE; empObj emp_cur; empRecord emp%ROWTYPE; BEGIN OPEN empObj FOR SELECT * FROM emp; loop FETCH empObj INTO empRecord; exit when empObj%notfound; dbms_output.put_line(empRecord.ename); end loop; CLOSE empObj; END; 感觉可以参考这个。 你这个逻辑实现基本都是处理对象的,只是实现逻辑,用java面向对象的语言实现更容易啊。

17,086

社区成员

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

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