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的表结构与对象类型一致。问题:  没有足够的值,请问是什么原因!?

解决方案 »

  1.   

    测试数据: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;