ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 多层嵌套表类型语法

多层嵌套表类型语法

原创 Linux操作系统 作者:tianyazlf 时间:2012-07-04 20:23:55 0 删除 编辑
--多级嵌套表类型  
CREATE OR REPLACE TYPE TAB_TYPE IS table OF varchar(100);
CREATE OR REPLACE TYPE TAB_TYPE_V IS table OF TAB_TYPE;
create or replace procedure Get_Data(P_Data in out TAB_TYPE_V) is
  CURSOR cur_get_receipt is
    select t.OBJECT_NAME, t.OBJECT_TYPE
      from user_objects t
     where t.OBJECT_TYPE = 'TABLE'
       and t.LAST_DDL_TIME > sysdate - 1;
  i      int := 0;
  v_Data TAB_TYPE_V := TAB_TYPE_V(TAB_TYPE(),TAB_TYPE());
begin
  for rec_receipt in cur_get_receipt loop
    i := i + 1;
    v_Data.extend;
    v_Data(i).extend;
    v_Data(i)(1) := rec_receipt.OBJECT_NAME;
    v_Data(i).extend;
    v_Data(i)(2) := rec_receipt.OBJECT_TYPE;
    dbms_output.put_line(v_Data(i) (1));
  end loop;
  P_Data := v_Data;
exception
  when others then
    dbms_output.put_line(sqlerrm);
end;
/

DECLARE
  v_Data TAB_TYPE_V := TAB_TYPE_V(TAB_TYPE());
  v_data1 tab_type;
BEGIN
  v_data.extend;
  v_Data(1).extend;
  v_Data(1)(1) := '1111';
  v_Data(1).extend;
  v_Data(1)(2) := '2222';
  v_Data(1).extend;
  v_Data(1)(3) := '3333';
  --Get_Data(v_Data);
  --dbms_output.put_line(11111);
  dbms_output.put_line(v_data(1)(1));
  dbms_output.put_line(v_data(1)(2));
  dbms_output.put_line(v_data(1)(3));
END;
/
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25128871/viewspace-734589/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-09-14

  • 博文量
    11
  • 访问量
    64075