什么是Oracle数据字典视图,用于存储有关表类型和对象类型的元数据?

时间:2018-10-31 06:54:15

标签: sql oracle metadata

我想找到一个表类型声明为object_type的表。这些类型是独立的SQL类型(不是任何PL / SQL包或过程专用的)。

我知道我们可以从all_type_attrs数据字典视图中获取对象类型元数据信息。但找不到连接 表类型及其对应的对象类型。

2 个答案:

答案 0 :(得分:0)

有一个数据字典视图user_coll_types(还有all_coll_typesdba_coll_types),其中包含您需要的信息。 elem_type_name列具有对象类型,而type_name为您提供了定义为该类型的表的集合。

因此,该查询将为您提供帮助:

select type_name as table_type_name, coll_type
from user_coll_types 
where elem_type_name = 'APC_T'
/

答案 1 :(得分:0)

如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';