티스토리 뷰

728x90

오라클 내의 전체 테이블 또는 컬럼을 조회하려면 SYS내의 VIEW를 이용하면됩니다.

 

1. ALL_TABLES

- 로그인 된 계정의 권한으로 접근할 수 있는 모든 테이블들

- 예 ) 테이블명에 "테스트"를 포함한 테이블 검색 : 

        SELECT * FROM ALL_TABLES WHERE LIKE '%테스트%';

 

2. USER_TABLES

- 로그인 된 계정이 소유하고 있는 테이블들 

  SELECT * FROM ALL_TABLES WHERE OWNER = '로그인된계정' 과 같다.

 

3. ALL_TAB_COLUMNS

- 로그인 된 계정의 권한으로 접근할 수 있는 모든 테이블 내의 컬럼들

- 예 ) 컬럼명에 "테스트"를 포함한 컬럼 검색

        SELECT * FROM ALL_TAB_COLUMNS WHERE COLUMN_NAME LIKE '%테스트%'

 

4. USER_TAB_COLUMNS

- 로그인된 계정이 소유하고 있는 테이블들

  SELECT * FROM ALL_TAB_COLUMNS WHERE OWNER = '로그인된계정' 과 같다.

 

 

 

위 테이블들을 이용해서 여러 응용이 가능합니다.

그런데..... 속도는 느려요...ㅋㅋ
그대로 일일이 노가다 해서 찾는거 보다는 좋겠죠?

 

 

응용 - 1 ) 데이터베이스 전체 데이터 수 구하기 - 아래의 쿼리로 조회된 값들을 이어서 쿼리문을 만들 수 있습니다.

 

[쿼리문 만들기 위한 조회]

 

SELECT 'SELECT (' FROM DUAL UNION ALL

SELECT '(SELECT count(*) cnt  FROM '||TABLE_NAME||') +  '  FROM USER_TABLES UNION ALL

SELECT '0) TOTAL_COUNT FROM DUAL; ' FROM DUAL;

 

[조회된 결과값으로 쿼리만들기]

 

SELECT (

(SELECT count(*) cnt  FROM T_CNKC_INTG_PRSN_INFO01L1_0329) +  

(SELECT count(*) cnt  FROM T_CNKC_INTG_DPRT01M1_B) +  

...

0) TOTAL_COUNT FROM DUAL; 

 

 

응용 - 2 ) 데이터베이스 전체 컬럼에서 원하는 데이터 검색 - 아래의 쿼리로 조회된 값들을 이어서 쿼리문을 만들 수 있습니다.

 

[쿼리문 만들기 위한 조회]

 

SELECT 'SELECT count('||COLUMN_NAME||') cnt, '''||TABLE_NAME||'.'||COLUMN_NAME||''' target, TO_CHAR('||COLUMN_NAME||') contents FROM '||TABLE_NAME||' WHERE TO_CHAR('||COLUMN_NAME||') like ''%'||'찾을내용'||'%'' 

GROUP BY '||COLUMN_NAME||'

UNION ALL' as query FROM USER_TAB_COLUMNS

WHERE COLUMN_NAME like '%RTUR_ID%'

ORDER BY TABLE_NAME,COLUMN_ID

 

[조회된 결과값으로 쿼리만들기]

 

SELECT count(RTUR_ID) cnt, 'T_CNKC_INTG_USER01H1.RTUR_ID' target, TO_CHAR(RTUR_ID) contents FROM T_CNKC_INTG_USER01H1 WHERE TO_CHAR(RTUR_ID) like '%찾을내용%' 

GROUP BY RTUR_ID

UNION ALL

SELECT count(RTUR_ID) cnt, 'T_CNKC_INTG_USER01H1_1114.RTUR_ID' target, TO_CHAR(RTUR_ID) contents FROM T_CNKC_INTG_USER01H1_1114 WHERE TO_CHAR(RTUR_ID) like '%찾을내용%' 

GROUP BY RTUR_ID

UNION ALL

SELECT count(RTUR_ID) cnt, 'T_CNKC_INTG_USER01M1.RTUR_ID' target, TO_CHAR(RTUR_ID) contents FROM T_CNKC_INTG_USER01M1 WHERE TO_CHAR(RTUR_ID) like '%찾을내용%' 

GROUP BY RTUR_ID

UNION ALL

...

마지막 UNION ALL 삭제



출처: https://intro0517.tistory.com/157 [전디버거의 코딩이야기]

참고위해서 가져왔습니다.

'DB server > Oracle' 카테고리의 다른 글

Oracle 테이블 데이터사용량 산정  (0) 2019.07.11
Oracle. 테이블 스페이스 조회  (0) 2019.05.08
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함