D_A_O 2018-01-31 03:11 采纳率: 0%
浏览 1833
已结题

Oracle中table类型数据赋值给cursor

在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;

  • 写回答

2条回答 默认 最新

  • 庄粟 2018-02-01 05:50
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退
  • ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?
  • ¥50 invest生境质量模块
  • ¥15 nhanes加权logistic回归,svyglm函数