日期:2014-05-17  浏览次数:20827 次

存储过程引用type 的object 类型问题
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的表结构与对象类型一致。

问题: 没有足够的值,请问是什么原因!?

------解决方案--------------------
测试数据:
SQL code

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;