복붙노트

[SQL] 그것은 단일 "DESC"여러 테이블의 구조를 확인할 수있다.

SQL

그것은 단일 "DESC"여러 테이블의 구조를 확인할 수있다.

그것은 단일 "DESC"여러 테이블의 구조를 확인할 수있다. 나는 테이블 my_contact, 직업, 관심, 노력, 위치 등이 아니라 다시 "내림차순"를 입력하고 다시 내가 단일 쿼리를 선택한 테이블의 구조를보고 싶어 다음 만들었습니다.

어쨌든에 수 있습니까?

해결법

  1. ==============================

    1.당신은 * SQL을 사용 게다가 한 번에 두 개 이상의 개체에 대한 정보를 얻기 위해 명령을 설명 할 수 없다.

    당신은 * SQL을 사용 게다가 한 번에 두 개 이상의 개체에 대한 정보를 얻기 위해 명령을 설명 할 수 없다.

    오래된 질문에, 벤 관련 데이터 사전 뷰를 쿼리하여 단일 테이블에 대한 모방 해당 클라이언트 명령에 어떻게 좋은 개요를했다.

    하나 개 이상의 테이블에 대한 유사한 정보를 얻으려면 테이블 이름의 목록을 제공해야하거나 아예 테이블 이름 필터를 생략 할 것이다. 하지만 당신은 아마도 당신이 열이 속한 알 수 있도록 테이블 및 주문은 SQL 같이 열 순서를 모방 테이블 이름과 열 ID에 의한 결과로 * 선택 목록에서 테이블 이름을 포함 플러스 명령을 설명 할 .

    이 벤의 대답은 조금의 데이터 형 디스플레이를 확장하고, 대부분의 데이터 유형에 대한 설명에 가까워 야; 그러나 테이블 이름의 추가와 함께 :

    select table_name as "Table",
      column_name as "Column",
      case when nullable = 'N' then 'NOT NULL' end as "Null?",
      cast (data_type || case 
        when data_type in ('VARCHAR2', 'NVARCHAR2', 'CHAR', 'NCHAR')
          then '(' || char_length || case when char_used = 'C' then ' CHAR' else ' BYTE' end || ')'
        when data_type in ('RAW', 'TIMESTAMP')
          then '(' || data_length || ')'
        when data_type in ('NUMBER')
            and (data_precision is not null or data_scale is not null)
          then '(' || coalesce(data_precision, 38) || case
            when data_scale > 0 then ',' || data_scale
          end || ')'
        end as varchar2(30)) as "Type"
      from user_tab_columns
     where table_name in ('MY_CONTACT', 'PROFESSION', 'INTEREST', 'SEEKING', 'LOCATION')
     order by table_name, column_id;
    

    나는 사용하여 테이블 이름 중 하나를 조롱했습니다 :

    create table my_contact (
      id number(38) primary key,
      col1 varchar2(10 char),
      col2 varchar2(32 byte),
      col3 raw(64),
      col4 number(5,2),
      col5 number,
      col6 number(*,3),
      col7 number(*,0),
      col8 clob,
      col9 date,
      col10 timestamp,
      col11 timestamp(3),
      col12 char
    );
    

    그래서 내 쿼리 내가 참조 :

    Table                          Column                         Null?    Type                          
    ------------------------------ ------------------------------ -------- ------------------------------
    MY_CONTACT                     ID                             NOT NULL NUMBER(38)                    
    MY_CONTACT                     COL1                                    VARCHAR2(10 CHAR)             
    MY_CONTACT                     COL2                                    VARCHAR2(32 BYTE)             
    MY_CONTACT                     COL3                                    RAW(64)                       
    MY_CONTACT                     COL4                                    NUMBER(5,2)                   
    MY_CONTACT                     COL5                                    NUMBER                        
    MY_CONTACT                     COL6                                    NUMBER(38,3)                  
    MY_CONTACT                     COL7                                    NUMBER(38)                    
    MY_CONTACT                     COL8                                    CLOB                          
    MY_CONTACT                     COL9                                    DATE                          
    MY_CONTACT                     COL10                                   TIMESTAMP(6)                  
    MY_CONTACT                     COL11                                   TIMESTAMP(3)                  
    MY_CONTACT                     COL12                                   CHAR(1)                       
    

    어떤 내림차순 유사합니다 :

    SQL> desc my_contact
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     ID                                        NOT NULL NUMBER(38)
     COL1                                               VARCHAR2(10 CHAR)
     COL2                                               VARCHAR2(32)
     COL3                                               RAW(64)
     COL4                                               NUMBER(5,2)
     COL5                                               NUMBER
     COL6                                               NUMBER(38,3)
     COL7                                               NUMBER(38)
     COL8                                               CLOB
     COL9                                               DATE
     COL10                                              TIMESTAMP(6)
     COL11                                              TIMESTAMP(3)
     COL12                                              CHAR(1)
    

    모든 테이블을보고 싶은 경우 where 절을 제외 할 수 있습니다. 그리고 당신은뿐만 아니라 쿼리 ALL_TAB_COLUMNS을 다른 사람의 테이블을보고 싶어하고 절에 의해 선택 목록과 순서 소유자를 포함하는 경우; 하지만 당신은 SYS 같은 계정에 내장 제외 할 수 있습니다.

    자주 실행하고 싶지만 복잡성을 숨길 경우에도 뷰 또는 함수이를 만들 수 있습니다.

  2. from https://stackoverflow.com/questions/28568552/is-it-possible-to-see-the-structure-of-mulitple-table-with-a-single-desc by cc-by-sa and MIT license