创建自定义类型样例
    create or replace procedure type_procedure
AS
 i_count integer;
begin
  select count(*) into i_count from user_objects t where t.OBJECT_TYPE ='TYPE' and t.OBJECT_NAME = upper('type_name');
    if i_count>0 then
        EXECUTE IMMEDIATE 'drop type type_name';
    end if;
end type_procedure;
/
call type_procedure();
drop procedure type_procedure;
create or replace type type_name1 as object
(
  beginTime Date,
  level5num  INTEGER
)
/
/**创建嵌套表,表中每个元素数据类型是type_name1**/
create or replace type nested_name1 as table of type_name1;/
CREATE OR REPLACE TYPE type_name2 AS OBJECT
(
  NODENAME             VARCHAR2(512),
  REGIONNAME	     VARCHAR2(512)
);
/
/**创建嵌套表,表中每个元素数据类型是type_name2**/
CREATE OR REPLACE TYPE nestedtable_LIST AS TABLE OF type_name2;
/
/**创建嵌套表,表中每个元素数据类型是NUMBER(10)**/
CREATE OR REPLACE TYPE nestedtable_LIST AS TABLE OF NUMBER(10);
/