存储过程引用type 的object 类型问题

既生瑜 2012-04-06 02:48:15
PROCEDURE prc_test(prm_2 OUT TYP_LIST) IS
BEGIN
select a.id,a.name BULK COLLECT
into prm_2
from table1 a
END prc_test;

其中 TYP_LIST 在types中定义
create or replace type TYP_LIST AS TABLE OF TYP_OBJ
create or replace type TYP_OBJ as object
(
id varchar(2),
name varchar(10)
)

table1的表结构与对象类型一致。

问题: 没有足够的值,请问是什么原因!?
...全文
95 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
既生瑜 2012-04-06
  • 打赏
  • 举报
回复
多谢!问题解决!

对象类型表 插入 也必须是对象类型的记录集
我心飞翔 2012-04-06
  • 打赏
  • 举报
回复
测试数据:

CREATE TABLE T179
(
ID VARCHAR(2),
NAME VARCHAR(10)
);
INSERT INTO T179 VALUES('01', 'AA');
INSERT INTO T179 VALUES('02', 'BB');

create or replace type TYP_OBJ as object
(
id varchar(2),
name varchar(10)
);

create or replace type TYP_LIST AS TABLE OF TYP_OBJ;

COMMIT;

修改代码如下,请参考:

CREATE OR REPLACE PROCEDURE prc_test(prm_2 OUT TYP_LIST)
IS
BEGIN
SELECT typ_obj(ID, NAME) BULK COLLECT INTO prm_2 FROM T179;
END prc_test;

17,086

社区成员

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

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