1

我需要能够通过使用 DBA_TAB_COLUMNS 中的列数据来重建表列,因此要开发它,我需要了解每列所指的内容。我想了解 DATA_TYPE_MOD 是什么——文档(http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2094.htm#I1020277)说它是一个数据类型修饰符,但我似乎找不到任何填充此字段的列或任何使用虚拟列填充此字段的方法。有熟悉这个领域的吗?

4

2 回答 2

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
于 2013-09-24T01:22:56.500 回答
0

Oracle 有一个 PL/SQL 包,可用于生成用于创建表的 DDL。使用它可能会更好。

请参阅http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_metada.htm#i1019414上的 GET_DDL

另请参阅: 如何在 SQL*Plus 中获取 Oracle 创建表语句

于 2013-09-23T23:05:21.400 回答