我需要能够使用 DBA_TAB_COLUMNS 中的列数据重建表列,因此要开发它,我需要了解每列所指的内容。我想了解DATA_TYPE_MOD是什么 - 文档 (http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2094.htm#I1020277) 说它是一个数据类型修饰符,但我似乎找不到任何填充了此字段的列或任何用虚拟列填充此字段的方法。有人熟悉这个领域吗?
表的列声明为使用REF
数据类型(包含它指向的对象的对象的对象标识符 (OID) )对对象类型的引用时,将填充[all][dba][user]_tab_columns
数据字典视图的Data_type_mod
列。
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
Oracle 有一个 PL/SQL 包,可用于生成用于创建表的 DDL。 您可能最好使用它。
请参阅GET_DDL http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_metada.htm#i1019414
另请参阅:如何在 SQL*Plus 中获取 Oracle 创建表语句