存储有关 Table 类型和对象类型的元数据的 Oracle 数据字典视图是什么?
What are the Oracle data dictionary views which store metadata about Table Types and Object Types?
我想查找一个 Table 类型声明为 object_type 的 table。这些类型是独立的 SQL 类型(不属于任何 PL/SQL 包或过程)。
我知道我们可以从 all_type_attrs
数据字典视图中获取对象类型元数据信息。但是找不到连接的视图
table类型及其对应的对象类型。
有一个数据字典视图 user_coll_types
(还有 all_coll_types
、dba_coll_types
),其中包含您需要的信息。 elem_type_name
列具有对象类型,type_name
为您提供定义为该类型 TABLE 的集合。
所以这个查询将帮助你:
select type_name as table_type_name, coll_type
from user_coll_types
where elem_type_name = 'APC_T'
/
正如 APC 所说,视图称为 ALL_COLL_TYPES(DBA/USER 版本也存在)。
请注意,除非引用,否则 Oracle 以大写形式存储标识符名称。
CREATE TYPE emp_obj_type AS OBJECT (
emp_id NUMBER,
emp_name VARCHAR2 (10));
/
CREATE TYPE emp_tbl_type IS TABLE OF emp_obj_type;
/
SELECT type_name, elem_type_name
FROM all_coll_types
WHERE type_name = 'EMP_TBL_TYPE'
AND elem_type_name = 'EMP_OBJ_TYPE';
我想查找一个 Table 类型声明为 object_type 的 table。这些类型是独立的 SQL 类型(不属于任何 PL/SQL 包或过程)。
我知道我们可以从 all_type_attrs
数据字典视图中获取对象类型元数据信息。但是找不到连接的视图
table类型及其对应的对象类型。
有一个数据字典视图 user_coll_types
(还有 all_coll_types
、dba_coll_types
),其中包含您需要的信息。 elem_type_name
列具有对象类型,type_name
为您提供定义为该类型 TABLE 的集合。
所以这个查询将帮助你:
select type_name as table_type_name, coll_type
from user_coll_types
where elem_type_name = 'APC_T'
/
正如 APC 所说,视图称为 ALL_COLL_TYPES(DBA/USER 版本也存在)。
请注意,除非引用,否则 Oracle 以大写形式存储标识符名称。
CREATE TYPE emp_obj_type AS OBJECT (
emp_id NUMBER,
emp_name VARCHAR2 (10));
/
CREATE TYPE emp_tbl_type IS TABLE OF emp_obj_type;
/
SELECT type_name, elem_type_name
FROM all_coll_types
WHERE type_name = 'EMP_TBL_TYPE'
AND elem_type_name = 'EMP_OBJ_TYPE';