2013-09-23 69 views

回答

1

Data_type_mod當一個表的一列被聲明爲使用REF數據類型的一個對象類型的引用的[all][dba][user]_tab_columns數據字典視圖的柱被填充(包含它指向的對象的對象標識符(OID))。

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 
0

Oracle有一個PL/SQL包,可用於生成用於創建表的DDL。使用這個可能會更好。

見GET_DDL上http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_metada.htm#i1019414

而且也參見: How to get Oracle create table statement in SQL*Plus

+0

是的,我知道這個包。我需要理解這些列的原因是,當我添加列或修改現有列時,我不需要刪除和創建表,我只需運行ALTER即可。我可以通過比較DBA_TAB_COLUMNS的列和存儲所有表列的自定義表中的數據來生成alter。 – drouleau