Collections 为表记录赋值

Collections 为表记录赋值,collections,plsql,oracle10g,Collections,Plsql,Oracle10g,我尝试了下面的代码,希望看到指定记录的输出 但它什么也没给 CREATE OR REPLACE TYPE t_obj as object( book_name varchar2(20), ISBN number, author varchar2(20) ); CREATE OR REPLACE TYPE t_table as table of t_obj; CREATE OR REPLACE FUNCTION fun_ret_tab RETURN t_ta

我尝试了下面的代码,希望看到指定记录的输出 但它什么也没给

CREATE OR REPLACE TYPE t_obj as object(
  book_name varchar2(20),
  ISBN      number,
  author    varchar2(20)
);

CREATE OR REPLACE TYPE t_table as table of t_obj;

CREATE OR REPLACE FUNCTION fun_ret_tab 
   RETURN t_table
IS
   vl_table   t_table := t_table ();
BEGIN
   FOR j IN 1 .. vl_table.COUNT
   LOOP
      vl_table.EXTEND;
      vl_table (vl_table.LAST) :=
         t_obj ('oracle programming', 2132, 'steven feurestein');

   END LOOP;
   return vl_table;
END;

由于vl_table.COUNT为0,请尝试以下操作:

create or replace FUNCTION fun_ret_tab 
   RETURN t_table
IS
   vl_table   t_table := t_table ();
BEGIN
   -- Start Loop at 0
   FOR j IN 0 .. vl_table.COUNT
   LOOP
      vl_table.EXTEND;
      vl_table (vl_table.LAST) :=
         t_obj ('oracle programming', 2132, 'steven feurestein');

END LOOP;
   return vl_table;
END;

vl_table.COUNT是否不为0,甚至不为空,因为它是新创建的,没有任何初始元素?正确!谢谢你的意见。