包的替代表 all_types 在 oracle db 中定义类型
alternative tables all_types for package define types in oracle db
我用的是oracle 19,包中声明了如下类型
CREATE OR REPLACE package MYUSER.mytest is
TYPE MY_TABLE IS TABLE OF VARCHAR2(30);
FUNCTION mytable_test ( in_param IN MY_TABLE , out_param OUT MY_TABLE , inout_param IN OUT MY_TABLE )
RETURN MY_TABLE ;
end mytest;
我需要了解此类对象或集合。我通常使用以下查询来执行此操作:
SELECT * FROM all_types WHERE OWNER = 'MYUSER', TYPE_NAME = 'MY_TABLE';
但它不适用于包内声明的类型。我该怎么做?
改为查看 all_plsql_types
:
SELECT * FROM all_plsql_types
WHERE OWNER = 'MYUSER'
AND TYPE_NAME = 'MY_TABLE';
如您所知,它是一种集合类型,您可以使用 all_plsql_coll_types
:
进一步挖掘
SELECT * FROM all_plsql_coll_types
WHERE OWNER = 'MYUSER'
AND TYPE_NAME = 'MY_TABLE';
all_plsql_types
and all_plsql_coll_types
的文档。
我用的是oracle 19,包中声明了如下类型
CREATE OR REPLACE package MYUSER.mytest is
TYPE MY_TABLE IS TABLE OF VARCHAR2(30);
FUNCTION mytable_test ( in_param IN MY_TABLE , out_param OUT MY_TABLE , inout_param IN OUT MY_TABLE )
RETURN MY_TABLE ;
end mytest;
我需要了解此类对象或集合。我通常使用以下查询来执行此操作:
SELECT * FROM all_types WHERE OWNER = 'MYUSER', TYPE_NAME = 'MY_TABLE';
但它不适用于包内声明的类型。我该怎么做?
改为查看 all_plsql_types
:
SELECT * FROM all_plsql_types
WHERE OWNER = 'MYUSER'
AND TYPE_NAME = 'MY_TABLE';
如您所知,它是一种集合类型,您可以使用 all_plsql_coll_types
:
SELECT * FROM all_plsql_coll_types
WHERE OWNER = 'MYUSER'
AND TYPE_NAME = 'MY_TABLE';
all_plsql_types
and all_plsql_coll_types
的文档。