我想找到一个表类型声明为object_type的表。这些类型是独立的SQL类型(不是任何PL / SQL包或过程专用的)。
我知道我们可以从all_type_attrs
数据字典视图中获取对象类型元数据信息。但找不到连接
表类型及其对应的对象类型。
答案 0 :(得分:0)
有一个数据字典视图user_coll_types
(还有all_coll_types
,dba_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';