将值分配给表记录

时间:2013-11-27 11:53:30

标签: 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_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;

1 个答案:

答案 0 :(得分:0)

由于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;