Oracle数据类型修饰符

时间:2013-09-23 23:00:32

标签: oracle types modifier

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

2 个答案:

答案 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

另见: How to get Oracle create table statement in SQL*Plus