如何创建Oracle全局类型并在PL / SQL中使用它?

时间:2012-10-08 10:07:14

标签: oracle plsql

在过程或函数中声明的Oracle RECORD TYPE是本地的,因此它可能仅在本地使用。如何声明一个全局的RECORD TYPE,并且可以在DB中全局使用所有过程和函数?

2 个答案:

答案 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;