특정 컬럼의 자료형을 변경해야할 일이 있어 프로젝트 스키마 내 특정 컬럼들을 다 찾아야했다. (관계형 DB가 아니었다.)
- 현재 스키마에서 모든 DB 테이블에 대해 특정 컬럼이 있는 테이블을 검색
SELECT DISTINCT table_name
FROM user_tab_columns
WHERE column_name IN ('ABC_DEF', 'GHI_JKL')
ORDER BY table_name;
내가 찾아야하는 컬럼인 'ABC_EDF', 'GHI_JKL' 컬럼을 갖고 있는 테이블의 이름을 조회해줘서
해당 테이블로 가서 수정해줬다. (몇 개 안 돼서 쿼리문보다는 직접 수정해주었다.)
- 두 컬럼이 동시에 존재하는 테이블을 검색
SELECT table_name
FROM user_tab_columns
WHERE column_name IN ('ABC_DEF', 'GHI_JKL')
GROUP BY table_name
HAVING COUNT(DISTINCT column_name) = 2;
- 모든 스키마에서 모든 DB 테이블에 대해 특정 컬럼이 있는 테이블을 검색
SELECT DISTINCT owner, table_name
FROM all_tab_columns
WHERE column_name IN ('ABC_DEF', 'GHI_JKL')
ORDER BY owner, table_name;