我需要能够使用DBA_TAB_COLUMNS中的列数据重建表列,因此为了开发它,我需要了解每个列所引用的内容。我想了解DATA_TYPE_MOD是什么 - 文档(http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2094.htm#I1020277)说它是一个数据类型修饰符,但我似乎找不到填充此字段的任何列或任何方式填充此字段虚拟列。有谁熟悉这个领域?
答案 0 :(得分:1)
Data_type_mod
数据类型(包含对象标识符(OID))将表的列声明为对象类型的引用时,将填充[all][dba][user]_tab_columns
数据字典视图的 REF
列它所指向的物体。)
create type obj as object(
item number
) ;
create table tb_1(
col ref obj
)
select t.table_name
, t.column_name
, t.data_type_mod
from user_tab_columns t
where t.table_name = 'TB_1'
结果:
table_name column_name data_type_mod
-----------------------------------------
TB_1 COL REF
答案 1 :(得分:0)
Oracle有一个PL / SQL包,可用于生成用于创建表的DDL。你可能会更好地使用它。
请参阅http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_metada.htm#i1019414
上的GET_DDL