2013-09-23 13 views
1

DBA_TAB_COLUMNS의 열 데이터를 사용하여 테이블 열을 재구성 할 수 있어야하므로이 항목을 개발하려면 각 열의 의미를 이해해야합니다. DATA_TYPE_MOD가 무엇인지 이해하고 싶습니다. 문서 (http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2094.htm#I1020277)에 데이터 형식 수정 자라고 표시되어 있지만이 필드가 채워진 열이나이 필드를 더미 열로 채우는 방법을 찾지 못하는 것 같습니다. 이 분야에 익숙한 사람?Oracle 데이터 유형 수정 자

답변

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

오라클은 테이블 생성을 위해 DDL을 생성하는 데 사용할 수있는 PL/SQL 패키지를 제공합니다. 아마도 이것을 사용하는 것이 더 나을 것입니다.

참조 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

+0

는 그래, 난이 패키지 알고 있어요. 이 열을 이해해야하는 이유는 열을 추가하거나 기존 열을 수정할 때 테이블을 삭제하고 만들 필요가 없기 때문에 ALTER를 실행할 수 있습니다. DBA_TAB_COLUMNS의 열과 모든 테이블 열을 저장하는 사용자 정의 테이블의 데이터를 비교하여 변경 사항을 생성 할 수 있습니다. – drouleau