訪問儲存的物件
CREATE SEQUENCE test_seq START WITH 1001;
CREATE TABLE test_tab
(
test_id INTEGER,
test_obj base_type,
PRIMARY KEY (test_id)
);
INSERT INTO test_tab (test_id, test_obj)
VALUES (test_seq.nextval, base_type(1,'BASE_TYPE'));
INSERT INTO test_tab (test_id, test_obj)
VALUES (test_seq.nextval, base_type(2,'BASE_TYPE'));
INSERT INTO test_tab (test_id, test_obj)
VALUES (test_seq.nextval, mid_type(3, 'MID_TYPE',SYSDATE - 1));
INSERT INTO test_tab (test_id, test_obj)
VALUES (test_seq.nextval, mid_type(4, 'MID_TYPE',SYSDATE + 1));
INSERT INTO test_tab (test_id, test_obj)
VALUES (test_seq.nextval, leaf_type(5, 'LEAF_TYPE',SYSDATE - 20,'Maple'));
INSERT INTO test_tab (test_id, test_obj)
VALUES (test_seq.nextval, leaf_type(6, 'LEAF_TYPE',SYSDATE + 20,'Oak'));
返回物件引用:
SELECT test_id
,test_obj
FROM test_tab;
返回物件引用,將 all 全部推送到子型別
SELECT test_id
,TREAT(test_obj AS mid_type) AS obj
FROM test_tab;
按型別返回每個物件的字串描述符
SELECT test_id
,TREAT(test_obj AS base_type).to_string() AS to_string -- Parenthesis are needed after the function name, or Oracle will look for an attribute of this name.
FROM test_tab;