programing

SQL 또는 Toad를 사용하여 테이블 정의를 추출하는 방법

bestprogram 2023. 7. 1. 09:06

SQL 또는 Toad를 사용하여 테이블 정의를 추출하는 방법

누가 SQL을 사용하여 테이블 정의를 추출하는 방법을 알려줄 수 있습니까?Oracle 스키마에서 모든 테이블 및 기타 정보의 데이터 유형을 추출하려고 합니다.저는 100개 정도의 테이블이 있습니다.

오라클 스키마의 전체 문서가 필요합니다.제 스키마 이름은 "cco"입니다.

SQL로 할 수 있습니까?

Toad for Data Analyst 3.3을 사용하고 있습니다.이 도구가 도움이 된다면 알려주시기 바랍니다.

해보셔도 됩니다.

select * from all_tab_cols
where owner = 'CCO';

현재 사용자의 모든 테이블에 대한 DDL을 가져오려면 다음을 사용할 수 있습니다.

select dbms_metadata.get_ddl('TABLE', table_name)
from user_tables;

의 내용을 적절하게 표시하려면 SQL 클라이언트를 조정해야 합니다.CLOB기둥.

자세한 내용(예: 다른 개체의 DDL을 가져오는 방법)은 설명서 http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_metada.htm 에서 확인할 수 있습니다.

테이블을 사용할 수 있습니다.USER_TAB_COLUMNS

아래 쿼리 예제 찾기

select 
table_name,
column_name,
data_type,
data_length,
data_precision,
nullable
from USER_TAB_COLUMNS 
where table_name = '<table_name>';

이것은 당신이 또한 할 수 있는 예시일 뿐입니다.select *자세한 내용을 참조하십시오.

표를 사용할 수도 있습니다.all_tab_columns

더 나은 디스플레이를 위해 다음을 사용할 수 있습니다.

    select table_name,column_name, data_type||
case
when data_precision is not null and nvl(data_scale,0)>0 then '('||data_precision||','||data_scale||')'
when data_precision is not null and nvl(data_scale,0)=0 then '('||data_precision||')'
when data_precision is null and data_scale is not null then '(*,'||data_scale||')'
when char_length>0 then '('||char_length|| case char_used 
                                                         when 'B' then ' Byte'
                                                         when 'C' then ' Char'
                                                         else null 
                                           end||')'
end||decode(nullable, 'N', ' NOT NULL') as data_type
from user_tab_columns
where table_name = '<TABLE_NAME>';

언급URL : https://stackoverflow.com/questions/19564989/how-to-extract-table-definitions-using-sql-or-toad