일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Append
- input
- const
- appendChild
- boolean
- Let
- createElement
- htmlFor
- createtextnode
- 학습법 #집중력
- VAR
- Openlayers
- FOR
- Today
- Total
Atomic Habits
오라클 전체 테이블, 컬럼 조회 (전체 데이터 수, 전체 컬럼 검색) 본문
출처 : https://intro0517.tistory.com/157
오라클 내의 전체 테이블 또는 컬럼을 조회하려면 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 삭제
'IT > SQL' 카테고리의 다른 글
오라클 테이블 컬럼 개수 구하기 (1) | 2022.01.07 |
---|---|
오라클 시퀀스(Sequence) 추가 (3) | 2021.12.23 |
merge into , update set (1) | 2021.12.16 |
[postgre] 기존 테이블에서 인덱스/PK 생성-삭제문 출력하기 (0) | 2021.12.11 |
[Oracle] 기존 테이블에서 인덱스/PK 생성-삭제문 출력하기 (0) | 2021.12.11 |