헤르메스 LIFE

[Oracle] Table 목록 조회 본문

Database

[Oracle] Table 목록 조회

헤르메스의날개 2010. 7. 30. 23:41
728x90

1. 현재 계정의 테이블 목록을 보여줌.

SELECT * FROM tab; 
SELECT *
FROM ALL_TABLES
WHERE TABLE_NAME LIKE '[TABLE명]'

2. 모든 계정의 테이블 목록을 보여줌.

SELECT * FROM all_tables WHERE OWNER = SCOTT; 
SELECT * FROM user_tables; 

3. SYNONYM 정보

SELECT *
  FROM ALL_SYNONYMS
 WHERE SYNONYM_NAME = 'SYNONYM명'
;

4. Procedure 목록

SELECT *
  FROM USER_PROCEDURES
 WHERE OBJECT_NAME LIKE '%[프로시저명]%'
;
SELECT OBJECT_ID
     , OBJECT_TYPE
     , OBJECT_NAME
     , TO_CHAR(CREATED, 'YYYY-MM-DD HH24:MI:SS') AS CREATED
     , TO_CHAR(LAST_DDL_TIME, 'YYYY-MM-DD HH24:MI:SS') AS LAST_DDL_TIME
  FROM SYS.USER_OBJECTS 
 WHERE OBJECT_TYPE = UPPER('PROCEDURE')
 ORDER BY OBJECT_NAME ASC
;
/* 패키지 내부 프로시저 조회 */
SELECT *
  FROM ALL_PROCEDURES
 WHERE OBJECT_NAME = '[패키지명]'
;

/* 프로시저 조회 */
SELECT *
  FROM ALL_PROCEDURES
 WHERE OBJECT_TYPE IN ('PACKAGE', 'PROCEDURE', 'FUNCTION', 'TRIGGER')
;

5. Procedure, Function 목록

SELECT *
  FROM USER_SOURCE
 WHERE TYPE = 'FUNCTION'
   AND NAME = '[함수명]'
SELECT *
  FROM USER_SOURCE
 WHERE TYPE = 'PROCEDURE'
   AND NAME = '[프로시저명]'

6. Procedure, Function 내용 찾기

SELECT T1.OBJECT_ID
     , T1.OBJECT_NAME
     , T1.OBJECT_TYPE
     , T2.TEXT
  FROM USER_OBJECTS T1   /* DB에 존재하는 모든 오브젝트의 목록 정보가 있음(TABLE, VIEW, PROCEDURE, FUNCTION, ..) */
     , USER_SOURCE  T2   /* 프로시저의 내용과 TYPE 정보가 있음 */
 WHERE T1.OBJECT_NAME = T2.NAME
   AND T1.OBJECT_TYPE IN ('PROCEDURE', 'FUNCTION')
   AND T2.TEXT        LIKE ' %PROCEDURE%'                   /* 찾으려는 프로시저 또는 함수 내 문구 입력 */
;
SELECT TEXT 
  FROM SYS.USER_SOURCE 
 WHERE TYPE = 'FUNCTION' 
   AND NAME = '[함수명]';

9. 테이블에 대한 컬럼 정보 및 Comment 정보를 보여줌.

SELECT A.TABLE_NAME                                           -- 테이블 명
     , A.COLUMN_NAME                                          -- 컬럼 명    
     , A.DATA_TYPE || (CASE WHEN A.DATA_TYPE LIKE '%CHAR%' THEN '(' || A.DATA_LENGTH || ')'
              WHEN A.DATA_TYPE = 'NUMBER' AND A.DATA_PRECISION > 0 AND A.DATA_SCALE > 0
                THEN '(' || A.DATA_PRECISION || ',' || A.DATA_SCALE || ')'
              WHEN A.DATA_TYPE = 'NUMBER' AND A.DATA_PRECISION > 0 
                THEN '(' || A.DATA_PRECISION ||')'
        END 
       )AS DATA_TYPE                                          -- 자릿수 표현한 데이터 유형
     , DECODE(A.NULLABLE, 'Y', 'YES', 'NO') ISNULL            -- NULL 여부
     , DECODE(PK.COLUMN_NAME, NULL, '', 'PK') PK             -- PK 여부 
     , DECODE(FK.COLUMN_NAME, NULL, '', 'FK') FK             -- PK 여부 
     , A.DATA_DEFAULT                                         -- 기본 값
     , COLUMN_ID                                              -- 생성 순서
     , COMM.COMMENTS                                          -- COMMENT    
  FROM USER_TAB_COLUMNS  A
     , USER_COL_COMMENTS COMM
     , (
            SELECT AA.TABLE_NAME, AA.COLUMN_NAME 
              FROM USER_CONS_COLUMNS AA
                 , USER_CONSTRAINTS  BB
             WHERE AA.OWNER            = BB.OWNER
               AND AA.CONSTRAINT_NAME  = BB.CONSTRAINT_NAME
               AND BB.CONSTRAINT_TYPE  = 'P'                
       ) PK
     , (
            SELECT AA.TABLE_NAME, AA.COLUMN_NAME 
              FROM USER_CONS_COLUMNS AA
                 , USER_CONSTRAINTS  BB
             WHERE AA.OWNER            = BB.OWNER
               AND AA.CONSTRAINT_NAME  = BB.CONSTRAINT_NAME
               AND BB.CONSTRAINT_TYPE  = 'R'                
       ) FK
 WHERE A.TABLE_NAME   = PK.TABLE_NAME(+)
   AND A.COLUMN_NAME  = PK.COLUMN_NAME(+)
   AND A.TABLE_NAME   = FK.TABLE_NAME(+)
   AND A.COLUMN_NAME  = FK.COLUMN_NAME(+)
   AND A.TABLE_NAME   = COMM.TABLE_NAME(+)
   AND A.COLUMN_NAME  = COMM.COLUMN_NAME(+)
--   AND UPPER(A.OWNER) = UPPER('[ 테이블유저명 ]')
   AND A.TABLE_NAME   = '[ 테이블명 ]'
 ORDER BY COLUMN_ID

https://hermeslog.tistory.com/377

 

[Oracle] 테이블 정보 조회 + Camel 표기

테이블 정보( 테이블 Comment + 컬럼 Comment + PK ) + Camel 표기 SELECT A.COLUMN_NAME , SUBSTR(LOWER(A.COLUMN_NAME), 1,1) || SUBSTR(REPLACE(INITCAP(A.COLUMN_NAME), '_'), 2) AS INIT_COL_CAP_NAME , B.COMMENTS , CASE WHEN LENGTH(C.INDEX_NAME) > 0 TH

hermeslog.tistory.com

 

728x90