CREATE TYPE pet_t IS OBJECT (
tag_no INTEGER
,NAME VARCHAR2 (60)
,breed VARCHAR2 (100)
)
Type created.
Nested Table of Object Types
CREATE TYPE zoo_t IS TABLE OF pet_t
Type created.
A Walk on the Wild Side
CREATE TABLE wild_side (
ID NUMBER PRIMARY KEY
, DATA SYS.ANYDATA
)
Table created.
Stuff Just About Anything Into That Table!
DECLARE
my_cat pet_t
:= pet_t (50, 'Sister', 'Siamese');
my_bird pet_t
:= pet_t (100
,'Mercury'
,'African Grey Parrot'
);
my_pets zoo_t := zoo_t (my_cat, my_bird);
BEGIN
INSERT INTO wild_side
VALUES (1
,SYS.ANYDATA.convertnumber
(5));
INSERT INTO wild_side
VALUES (3
,SYS.ANYDATA.convertvarchar2
('Pretty crazy stuff!'));
INSERT INTO wild_side
VALUES (5
,SYS.ANYDATA.convertdate
(SYSDATE));
INSERT INTO wild_side
VALUES (2
,SYS.ANYDATA.convertobject
(my_bird));
INSERT INTO wild_side
VALUES (7
,SYS.ANYDATA.convertcollection
(my_pets));
COMMIT;
END;
1 row(s) inserted.
SELECT ID, ws.DATA.gettypename () thetype
FROM wild_side ws
ID | THETYPE | 1 | SYS.NUMBER | 3 | SYS.VARCHAR2 | 5 | SYS.DATE | 2 | SQL_RHMNFZMBVXMXUDWPPFNBLLUVE.PET_T | 7 | SQL_RHMNFZMBVXMXUDWPPFNBLLUVE.ZOO_T |
---|