- define Object Types
create or replace type [OBJECT_TYPE_NAME] as object ( define fields ... )code
create or replace type My_OBJECT_TYPE as object ( field1 varchar2(5), field2 varchar2(30), field3 number, field4 date )
- define Table Types (Array) reference to Object Types
create or replace type [TABLE_TYPE_NAME] as table of [OBJECT_TYPE_NAME];code
create or replace type My_TABLE_TYPE as table of MY_OBJECT_TYPE;
2. Apply
- write pl/sql
declare -- 1) allocate empty space for table, not define is null -- same array of other programming languages p_tab MY_TABLE_TYPE := MY_TABLE_TYPE(); begin for rcd in (select col1, col2, col3, col4 from MY_TABLE) loop -- 2) extends table space (array) from zero to one, two, three, ... n spaces (by step) p_tab.extend(); -- 3) initial value, pass null to constructor equal number of fields for My_OBJECT_TYPE -- p_tab.last start by 1 after call p_tab.extend() -- same new instance of other programming languages p_tab(p_tab.last) := MY_OBJECT_TYPE(null, null, null, null); -- 4) define value to each fields p_tab(p_tab.last).field1 := rcd.col1; p_tab(p_tab.last).field2 := rcd.col2; p_tab(p_tab.last).field3 := rcd.col3; p_tab(p_tab.last).field4 := rcd.col4; end loop; exception when others then dbms_output.put_line(DBMS_UTILITY.format_error_stack); end;
ไม่มีความคิดเห็น:
แสดงความคิดเห็น