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[all][dba][user]_tab_columnsテーブルの列がデータ型を使用してオブジェクト型への参照として宣言されている場合、データ ディクショナリ ビューの列に値が入力さREFれます (オブジェクトのオブジェクト識別子 (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
于 2013-09-24T01:22:56.500 に答える
0

Oracle には、テーブルを作成するための DDL を生成するために使用できる PL/SQL パッケージがあります。これを使った方が良さそうです。

http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_metada.htm#i1019414の GET_DDL を参照してください。

参照: SQL*Plus で Oracle create table ステートメントを取得する方法

于 2013-09-23T23:05:21.400 に答える