在过程或函数中声明的Oracle RECORD TYPE是本地的,因此它可能仅在本地使用。如何声明一个全局的RECORD TYPE,并且可以在DB中全局使用所有过程和函数?
答案 0 :(得分:5)
Record
类型不能作为单独的模式对象创建,因此要使Record
类型公开可用,类型通常在包规范中声明,或者包体仅在该包的范围。
答案 1 :(得分:3)
在包中使用对象类型的基本示例。
CREATE OR REPLACE TYPE test_rec IS OBJECT
(
ID VARCHAR2(30)
,TYPE VARCHAR2(30)
);
/
CREATE OR REPLACE TYPE test_NT AS TABLE OF test_rec;
/
declare
v_test_NT test_NT;
begin
select test_rec (id
,type
)
BULK COLLECT INTO v_test_NT
FROM test ;
--use it as you want
end;