복붙노트

[SQL] 오라클의 모든 테이블의 목록을 가져옵니다?

SQL

오라클의 모든 테이블의 목록을 가져옵니다?

어떻게하면 모든 테이블의 이름을 표시하는 Oracle 데이터베이스를 조회 할 수 있습니까?

해결법

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

    1.

    SELECT owner, table_name
      FROM dba_tables
    

    이것은 당신이 DBA_TABLES 데이터 사전 뷰에 액세스 할 수 있다고 가정한다. 당신이 그 권한을 가지고 있지만 필요하지 않으면 당신은 DBA가 명시 적으로 DBA가 하나 ANY DICTIONARY 권한 또는 SELECT_CATALOG_ROLE 역할 (SELECT있는 쿼리를 허용 할 당신을 부여하는 것으로, 그 테이블에 사용자 권한을 부여하거나 요청할 수 있습니다 데이터 사전 테이블). 물론, 당신은 아마 걱정하지 않는 것이 Oracle 테이블 수가 많은 SYS와 SYSTEM와 같은 특정 스키마를 제외 할 수 있습니다.

    당신이 DBA_TABLES에 액세스 할 수없는 경우 또는, 당신은 당신의 계정이 ALL_TABLES보기를 통해에 액세스 할 수 있는지 모든 테이블을 볼 수 있습니다 :

    SELECT owner, table_name
      FROM all_tables
    

    하여 데이터베이스에서 사용할 수있는 테이블 (ALL_TABLES 쇼 당신에게 당신의 사용자에 대한 액세스 권한이 부여 된 것을 테이블 모든 정보)의 부분 집합이 될 수, 비록.

    당신 만 테이블에 관심을 경우 소유, 당신은에 액세스 할 수없는 사람, 당신은 USER_TABLES을 사용할 수 있습니다 :

    SELECT table_name
      FROM user_tables
    

    정의에 의해, 당신이다, 주인 - USER_TABLES는 사용자가 소유하는 테이블에 대한 정보를 가지고 있기 때문에, 그것은 OWNER 열이 없습니다.

    오라클은 기존 데이터의 개수가 사용될 수를 example--에 대한 views-- TAB, DICT, 탭, CAT를 사전을 가지고 있습니다. 일반적으로, 나는 당신이 절대적으로 그들은 종종 객체의 새로운 유형의 문제가 있으므로 긴 시간에 이러한 전망을 변경되지 않았습니다 오라클 6. 오라클 스크립트를 백 포트 필요가없는 이러한 기존 뷰를 사용하는 것이 좋습니다 않을 것입니다. 보기 모든 필터 그 아웃 _TABLES에서 [| | 모든 사용자가 DBA가] 예를 들어, TAB 및 CAT는 사용자의 휴지통에있는 테이블에 대한 두 공연 정보를 볼. CAT는 또한 당신이 정말로 원하는 것을하기 어렵다 "TABLE"의 TABLE_TYPE와 구체화 된 뷰 로그에 대한 정보를 보여줍니다. DICT 테이블과 동의어를 결합하여 객체를 소유 한 사람을 말하지 않습니다.

  2. ==============================

    2.쿼리 USER_TABLES와 DBA_TABLES 작동하지 않았다. 이 사람은했다 :

    쿼리 USER_TABLES와 DBA_TABLES 작동하지 않았다. 이 사람은했다 :

    select table_name from all_tables  
    
  3. ==============================

    3.상기 한 공정을가는 테이블은 주어진 열 이름을 포함 확인하도록 사용될 수있다 다른 뷰라고 COLS (ALL_TAB_COLUMNS)가있다.

    상기 한 공정을가는 테이블은 주어진 열 이름을 포함 확인하도록 사용될 수있다 다른 뷰라고 COLS (ALL_TAB_COLUMNS)가있다.

    예를 들면 :

    SELECT table_name, column_name
    FROM cols
    WHERE table_name LIKE 'EST%'
    AND column_name LIKE '%CALLREF%';
    

    EST와 이름에 CALLREF의 어느 곳을 포함하는 열로 시작하는 이름을 가진 모든 테이블을 찾을 수 있습니다.

    예를 들어, 당신이에 가입하고 싶은 열 운동을 테이블에 따라 및 열 명명 규칙을 할 때 도움이 될 수 있습니다.

  4. ==============================

    4.당신이 당신의 열이 엉망지고 경우에 당신이보기 좋네요에 대한 몇 가지 매개 변수까지 첫 설정할 수 있습니다 SQLPLUS 사용하는 경우 (당신이 당신의 SQLPLUS 세션을 종료 한 후이 변수가 지속되지해야한다) :

    당신이 당신의 열이 엉망지고 경우에 당신이보기 좋네요에 대한 몇 가지 매개 변수까지 첫 설정할 수 있습니다 SQLPLUS 사용하는 경우 (당신이 당신의 SQLPLUS 세션을 종료 한 후이 변수가 지속되지해야한다) :

    set colsep '|'
    set linesize 167
    set pagesize 30
    set pagesize 1000
    

    당신은 모든 테이블 이름을보고이 같은 것을 사용할 수 있습니다 :

    SELECT table_name, owner, tablespace_name FROM all_tables;
    

    @Justin 동굴 언급, 당신은 당신이 소유하는 테이블 만 표시하려면이 사용할 수 있습니다 :

    SELECT table_name FROM user_tables;
    

    당신은 또한 같은 것을 실행 시도 할 수 있도록 일부 "테이블"실제로 "뷰"가 될 수 있음을 명심하십시오 :

    SELECT view_name FROM all_views;
    

    이 같은 공정 허용 보이는 뭔가를 양보해야합니다 :

  5. ==============================

    5.간단한 쿼리는 현재 사용자의 테이블을 선택합니다 :

    간단한 쿼리는 현재 사용자의 테이블을 선택합니다 :

      SELECT table_name FROM user_tables;
    
  6. ==============================

    6.

        select object_name from user_objects where object_type='TABLE';
    

    ----------------또는------------------

        select * from tab;
    

    ----------------또는------------------

        select table_name from user_tables;
    
  7. ==============================

    7.데이터 아래는 전망을 사전을보십시오.

    데이터 아래는 전망을 사전을보십시오.

    tabs
    dba_tables
    all_tables
    user_tables
    
  8. ==============================

    8.현재 사용자가 소유 한 테이블을 나열 USER_TABLES에서 선택하십시오.

    현재 사용자가 소유 한 테이블을 나열 USER_TABLES에서 선택하십시오.

  9. ==============================

    9.그 중 하나, 당신은 선택할 수 있습니다 :

    그 중 하나, 당신은 선택할 수 있습니다 :

    SELECT DISTINCT OWNER, OBJECT_NAME 
        FROM DBA_OBJECTS 
        WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';
    
    SELECT DISTINCT OWNER, OBJECT_NAME 
        FROM ALL_OBJECTS 
        WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';
    
  10. ==============================

    10.오라클 데이터베이스 쿼리 아래 사용하는 모든 테이블의 이름을 표시합니다

    오라클 데이터베이스 쿼리 아래 사용하는 모든 테이블의 이름을 표시합니다

    SELECT owner, table_name FROM dba_tables;
    
    SELECT owner, table_name FROM all_tables;
    
    SELECT table_name FROM user_tables;

    같이 더 : http://www.plsqlinformation.com/2016/08/get-list-of-all-tables-in-oracle.html

  11. ==============================

    11.

    select * from dba_tables
    

    당신이 로그인있는 사용자가 SYSDBA 권한을 가진 경우에만 모든 사용자의 모든 테이블을 제공합니다.

  12. ==============================

    12.내가 사용하는 것이 포인트 것이라고 답을 찾을 수 없습니다

    내가 사용하는 것이 포인트 것이라고 답을 찾을 수 없습니다

    DBA_ALL_TABLES (ALL_ALL_TABLES/USER_ALL_TABLES)
    

    잘 나의 버전을 추가하기로 결정했다. 이 뷰는 실제로 더가 아니라 객체 테이블을 반환로 DBA_TABLES 그 (http://docs.oracle.com/cd/E11882_01/server.112/e40402/statviews_1003.htm) 반환합니다.

  13. ==============================

    13.당신은 오라클의 객체에 대한 정보를 얻기 위해 오라클 데이터 사전을 사용할 수 있습니다.

    당신은 오라클의 객체에 대한 정보를 얻기 위해 오라클 데이터 사전을 사용할 수 있습니다.

    당신은 다른 방법으로 테이블의 목록을 얻을 수 있습니다 :

    select * 
    from dba_tables
    

    또는 예를 들어 :

    select * 
    from dba_objects 
    where object_type = 'TABLE' 
    

    그럼 당신은 테이블 이름을 사용하여 테이블 열을 얻을 수 있습니다 :

    select * 
    from dba_tab_columns
    

    그럼 당신은 의존성 (트리거, 뷰 등)의 목록을 얻을 수 있습니다 :

    select * 
    from dba_dependencies
    where referenced_type='TABLE' and referenced_name=:t_name 
    

    그런 다음이 개체의 텍스트 소스를 얻을 수 있습니다 :

    select * from dba_source
    

    그리고 당신은 USER를 사용하거나 원하는 경우 ALL 대신 DBA의 전망.

  14. ==============================

    14.뷰를 포함 :

    뷰를 포함 :

    SELECT owner, table_name as table_view
      FROM dba_tables
    UNION ALL
    SELECT owner, view_name as table_view
      FROM DBA_VIEWS
    
  15. ==============================

    15.우리는 쿼리 아래에서 열 세부 정보를 포함한 모든 테이블을 얻을 수 있습니다 :

    우리는 쿼리 아래에서 열 세부 정보를 포함한 모든 테이블을 얻을 수 있습니다 :

    SELECT * FROM user_tab_columns;
    
  16. ==============================

    16.다음은 사용할 수있는 방법을 옵션 설명 SQL 쿼리의 주석 조각입니다 :

    다음은 사용할 수있는 방법을 옵션 설명 SQL 쿼리의 주석 조각입니다 :

    -- need to have select catalog role
    SELECT * FROM dba_tables;
    
    -- to see tables of your schema
    SELECT * FROM user_tables;
    
    -- tables inside your schema and tables of other schema which you possess select grants on
    SELECT * FROM all_tables;
    
  17. ==============================

    17.다른 답변이 나에게 나만 혼란 여분의 데이터를 준 반면, 다음 쿼리는 필요한 데이터를 나열합니다.

    다른 답변이 나에게 나만 혼란 여분의 데이터를 준 반면, 다음 쿼리는 필요한 데이터를 나열합니다.

    select table_name from user_tables;
    
  18. ==============================

    18.(오라클 데이터베이스를위한 무료 명령 줄 인터페이스) SQLcl에서 사용할 수있는 새로운 기능입니다

    (오라클 데이터베이스를위한 무료 명령 줄 인터페이스) SQLcl에서 사용할 수있는 새로운 기능입니다

    테이블 별칭.

    다음은이 기능의 사용 및 추가 측면을 보여주는 몇 가지 예입니다. 첫째, SQL 명령 행 (창에서 sql.exe) 세션에 연결합니다. 어떤 다른 명령 또는 디스플레이 데이터 쿼리를 실행하기 전에이 sqlcl 특정 명령을 입력하는 것이 좋습니다.

    SQL> set sqlformat ansiconsole     -- resizes the columns to the width of the 
                                       -- data to save space 
    

    SQL> 테이블

    TABLES
    -----------
    REGIONS
    LOCATIONS
    DEPARTMENTS
    JOBS
    EMPLOYEES
    JOB_HISTORY
    ..
    

    테이블 별칭이, 당신은 단순히 별명 목록 <별칭> 사용할 수 있습니다를 참조하면된다 알고

    SQL> alias list tables
    tables - tables <schema> - show tables from schema
    --------------------------------------------------
    
     select table_name "TABLES" from user_tables
    

    이 SQLcl에서 기본적으로 제공으로이 별명을 정의 할 필요가 없습니다. 특정 스키마에서 테이블 목록, 새 사용자 정의 별칭을 사용하여 표시되는 컬럼의 세트와 바인드 인수로 스키마 이름을 전달하려면 사용하여 그렇게 할 수 있습니다

    SQL> 별칭 tables_schema = 선택 소유자, TABLE_NAME, ALL_TABLES에서 last_analyzed 어디 소유자 = ownr의;

    그 후에 당신은 단순히 인수로 스키마 이름을 통과 할 수있다

    SQL> TABLE_SCHEMA의 HR

    OWNER   TABLE_NAME               LAST_ANALYZED
    HR      DUMMY1                   18-10-18
    HR      YOURTAB2                 16-11-18
    HR      YOURTABLE                01-12-18
    HR      ID_TABLE                 05-12-18
    HR      REGIONS                  26-05-18
    HR      LOCATIONS                26-05-18
    HR      DEPARTMENTS              26-05-18
    HR      JOBS                     26-05-18
    HR      EMPLOYEES                12-10-18
    ..
    ..
    

    더 정교한 미리 정의 된 별명은 여러 가지 다른 열을 표시 테이블 2로 알려져있다.

    SQL> tables2
    
    Tables
    ======
    TABLE_NAME                 NUM_ROWS   BLOCKS   UNFORMATTED_SIZE COMPRESSION     INDEX_COUNT   CONSTRAINT_COUNT   PART_COUNT LAST_ANALYZED
    AN_IP_TABLE                       0        0                  0 Disabled                  0                  0            0 > Month
    PARTTABLE                         0        0                  0                           1                  0            1 > Month
    TST2                              0        0                  0 Disabled                  0                  0            0 > Month
    TST3                              0        0                  0 Disabled                  0                  0            0 > Month
    MANAGE_EMPLYEE                    0        0                  0 Disabled                  0                  0            0 > Month
    PRODUCT                           0        0                  0 Disabled                  0                  0            0 > Month
    ALL_TAB_X78EHRYFK                 0        0                  0 Disabled                  0                  0            0 > Month
    TBW                               0        0                  0 Disabled                  0                  0            0 > Month
    DEPT                              0        0                  0 Disabled                  0                  0            0 > Month
    

    백그라운드에서 실행되는 쿼리 무엇인지 알고, 입력

    alias list tables2
    

    이렇게하면 일반적으로 SQL * 플러스에서 사용되는 미리 정의 된 열 정의와 함께 약간 더 복잡한 쿼리를 표시합니다.

    제프 스미스는 더 여기에 대한 별칭 설명

  19. ==============================

    19.나는 열 ID의 순서로 정렬 된 스키마의 테이블에 속한 모든 열 이름의 목록을 얻을 찾고 있었다.

    나는 열 ID의 순서로 정렬 된 스키마의 테이블에 속한 모든 열 이름의 목록을 얻을 찾고 있었다.

    여기에 내가 사용하고있는 쿼리는 다음과 같습니다 -

    SELECT COLUMN_NAME
    FROM ALL_TAB_COLUMNS
    WHERE OWNER = 'schema_owner_username' AND TABLE_NAME='table_name'
    ORDER BY COLUMN_ID ASC;
    
  20. ==============================

    20.실제로, 같은 어윈, 두꺼비 데이터 모델러 또는 ERBuilder 같은 데이터 사전의 생성을 할 수있는 도구를 통해 해당 작업을 수행하는 queries.it이 가능 SQL을 통해 테이블의 목록을 가질 수 있습니다. 이러한 도구, 테이블 이름에 추가하여, 당신은 필드, 해당 유형과 같은 개체가됩니다 (트리거, 시퀀스, 도메인,보기 ...)

    실제로, 같은 어윈, 두꺼비 데이터 모델러 또는 ERBuilder 같은 데이터 사전의 생성을 할 수있는 도구를 통해 해당 작업을 수행하는 queries.it이 가능 SQL을 통해 테이블의 목록을 가질 수 있습니다. 이러한 도구, 테이블 이름에 추가하여, 당신은 필드, 해당 유형과 같은 개체가됩니다 (트리거, 시퀀스, 도메인,보기 ...)

    단계 아래 테이블 정의를 생성하기 위해 다음과 같이하십시오

    데이터베이스는 엔티티 관계 다이어그램으로 소프트웨어에 표시됩니다.

  21. ==============================

    21.

    select * from all_all_tables
    

    시작 부분에 '모든'이 추가는 추가로 3 열을 제공합니다 :

    OBJECT_ID_TYPE
    TABLE_TYPE_OWNER
    TABLE_TYPE
    
  22. from https://stackoverflow.com/questions/205736/get-list-of-all-tables-in-oracle by cc-by-sa and MIT license