복붙노트

[SQL] DB2 쿼리는 주어진 스키마에 대한 모든 테이블 이름을 검색하기

SQL

DB2 쿼리는 주어진 스키마에 대한 모든 테이블 이름을 검색하기

난 그냥 주어진 스키마에 대한 모든 테이블 이름을 선택하는 간단한 쿼리를 찾고 있어요.

예를 들어, 우리의 DB는 100 개 이상의 테이블을 가지고 있는데 하위 문자열 "CUR"를 포함하는 모든 테이블을 찾아야합니다. 나는 모든 테이블을 일단 나는 같은 명령을 사용할 수 있습니다.

해결법

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

    1.

    select * from sysibm.systables
    where owner = 'SCHEMA'
    and name like '%CUR%'
    and type = 'T';
    

    이렇게하면 스키마 스키마 그들 CUR 모든 테이블을 제공 할 것입니다.

    SYSIBM.SYSTABLES 테이블에 대한 자세한 내용은 여기를 참조하십시오. 왼쪽의 탐색 창에서보고있는 경우에, 당신은 멋진 DB2의 메타 데이터가 모든 종류의를 얻을 수 있습니다.

    이 링크는 메인 프레임 DB2 / Z입니다 있습니다. DB2 / LUW (리눅스 / 유닉스 / 윈도우의 하나) 약간 다른 열이 있습니다. 이를 위해, 나는 당신이 CREATOR 열을 원하는 생각합니다.

    어떤 경우에는, 당신은 당신의 특정 변형에 대한 IBM의 문서를 검토해야한다. 테이블 이름은 거의 확실하지만 변경되지 않습니다, 그래서 그냥 자세한 내용은 SYSIBM.SYSTABLES를 찾아보십시오.

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

    2.

    DB2 LIST TABLES FOR SCHEMA <schema_name>
    
  3. ==============================

    3.내 iSeries에서 나는 iNavigator에서이 명령을 실행해야합니다 :

    내 iSeries에서 나는 iNavigator에서이 명령을 실행해야합니다 :

    select *
    from QSYS2.SYSTABLES
    where TABLE_SCHEMA
    like 'SCHEMA_NAME'
    and TYPE = 'T';
    
  4. ==============================

    4.이 작업을 시도해야합니다 :

    이 작업을 시도해야합니다 :

    select TABNAME from syscat.tables where tabschema = 'yourschemaname'";
    
  5. ==============================

    5.는 DB2 명령을 사용하여 (어떤 SQL)을 실행 가능성이 없다

    는 DB2 명령을 사용하여 (어떤 SQL)을 실행 가능성이 없다

    db2 LIST TABLES FOR ALL
    

    모든이 쇼 데이터베이스의 모든 스키마의 테이블.

    REF : LIST 명령을 사용하여 DB2의 모든 테이블을 보여

  6. ==============================

    6.Linux, Unix 및 Windows 용 DB2 (즉, DB2 LUW) 또는 DB2웨어 하우스에 들어 SYSCAT.TABLES 카탈로그 뷰를 사용합니다. 예를 들면

    Linux, Unix 및 Windows 용 DB2 (즉, DB2 LUW) 또는 DB2웨어 하우스에 들어 SYSCAT.TABLES 카탈로그 뷰를 사용합니다. 예를 들면

    SELECT TABSCHEMA, TABNAME FROM SYSCAT.TABLES WHERE TABSCHEMA LIKE '%CUR%' AND TYPE = 'T'
    

    어느 문자열 CUR을 포함하는 모든 스키마에있는 모든 표준 테이블을 반환하는 SQL 문입니다. DB2 명령 행에서 당신은 또한, 예를 들어 CLP 명령을 사용할 수 있습니다 모든 DB2는 목록 테이블 | 유사한 효과 그렙 CUR

    이 페이지는 TYPE 열에 대해 상이한 수치를 포함 SYSCAT.TABLES의 열을 설명한다.

    A = Alias
    G = Created temporary table
    H = Hierarchy table
    L = Detached table
    N = Nickname
    S = Materialized query table
    T = Table (untyped)
    U = Typed table
    V = View (untyped)
    W = Typed view
    

    기타 일반적으로 사용되는 카탈로그 뷰는 다음과

    SYSCAT.COLUMNS      Lists the columns in each table, view and nickname
    SYSCAT.VIEWS        Full SQL text for view and materialized query tables
    SYSCAT.KEYCOLUSE    Column that are in PK, FK or Uniuqe constraints
    

    DB2 LUW에서는합니다 (SYSCAT 카탈로그 뷰는, 자신의 데이터로부터 해당) SYSIBM 카탈로그 테이블을 사용하는 나쁜 관행으로 간주됩니다. 그들은 열 이름이 가서, 지금까지의 적은 일치하지 아주 쉽게 사용, 문서화되어 있지 않습니다하고 버전 간의 변화 가능성이 높습니다.

    이 페이지는 모든 카탈로그의 목록을 가지고하면 카탈로그 뷰에 도로지도를 볼

    여기서 설명하는 Z / OS를 사용 SYSIBM.TABLES 용 DB2. 예를 들면

    SELECT CREATOR, NAME FROM SYSIBM.SYSTABLES WHERE OWNER LIKE '%CUR%' AND TYPE = 'T'
    

    DB2의 용 제가 여기에 설명 된 (즉 iSeries의 일명 AS / 400)를 사용 QSYS2.SYSTABLES

    SELECT TABLE_OWNER, TABLE_NAME FROM QSYS2.SYSTABLES WHERE TABLE_SCHEMA LIKE '%CUR%' AND TABLE_TYPE = 'T'
    

    VSE 및 VM SQL 참조 여기 DB2 서버를 설명 VSE 및 VM 사용 SYSTEM.SYSCATALOG 용 DB2 서버의 경우

    SELECT CREATOR, TNAME FROM SYSTEM.SYSCATALOG WHERE TABLETYPE = 'R'
    
  7. ==============================

    7.

    db2 connect to MY_INSTACE_DB with myuser -- connect to db2    
    db2 "select TABNAME from syscat.tables where tabschema = 'mySchema' with ur"
    db2 terminate -- end connection
    
  8. ==============================

    8.

    select name from sysibm.systables 
    where name like '%ISP%' 
    and type = 'T'
    
  9. ==============================

    9.또한 단순히 테이블 이름 입력리스트 테이블이 DB2에서 얻을 수 있습니다

    또한 단순히 테이블 이름 입력리스트 테이블이 DB2에서 얻을 수 있습니다

  10. ==============================

    10.이 작업을해야합니다 :

    이 작업을해야합니다 :

    select * from syscat.tables
    
  11. ==============================

    11.

    SELECT
      name
    FROM
      SYSIBM.SYSTABLES
    WHERE
        type = 'T'
      AND
        creator = 'MySchema'
      AND
        name LIKE 'book_%';
    
  12. ==============================

    12.data.The 주요 차이에는 큰 차이가 열 순서입니다 없습니다 목록 테이블에서 스키마 열은 테이블 / 뷰 열 후가 될 것입니다 목록에서 테이블 세부 사항 스키마 열은 열 입력하면됩니다 보여

    data.The 주요 차이에는 큰 차이가 열 순서입니다 없습니다 목록 테이블에서 스키마 열은 테이블 / 뷰 열 후가 될 것입니다 목록에서 테이블 세부 사항 스키마 열은 열 입력하면됩니다 보여

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

    13.IN 내가 테이블 syscat.systables을 설명하고 대신 CREATOR를 사용하여 시도하고 작동 그래서 "소유자"존재하지 않는 발견 db2warehouse.

    IN 내가 테이블 syscat.systables을 설명하고 대신 CREATOR를 사용하여 시도하고 작동 그래서 "소유자"존재하지 않는 발견 db2warehouse.

    db2 "select NAME from sysibm.systables where CREATOR = '[SCHEMANAME]'and type = 'T'"
    
  14. from https://stackoverflow.com/questions/3583963/db2-query-to-retrieve-all-table-names-for-a-given-schema by cc-by-sa and MIT license