多層巢狀表型別語法

tianyazlf發表於2012-07-04
--多級巢狀表型別  
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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章