반응형
프로젝트를 진행하다가 shp 파일로 DB import를하는과정에서
컬럼존재여부 확인할 필요가 있었다.
코멘트를 컬럼마다 달아줘야하는데
같은 테이블이라도 DB import를 시켰을 때 가지고 있는 컬럼이 제각각이였기 때문..
그래서
오라클의 특정 테이블에서 컬럼이 존재하는지 여부를 확인하는 쿼리를 알아왔다.
이 쿼리는 오라클 관리테이블인
ALL_TAB_COLUMNS 테이블을 조회하여 사용한다.
조회 쿼리는 아래와 같다.
SELECT COUNT(*) cnt FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME = '테이블명' and
COLUMN_NAME = '컬럼명' and
OWNER ='스키마명' ;
- 조회하고 싶은 테이블 명,
- 해당 테이블안에 존재여부를 판단할 컬럼명
- 테이블을 소유하고 있는 스키마명
위 쿼리에
총 세가지를 요소를 입력하고 조회하면 1이 나오면 존재함, 0이나오면 존재하지 않음 으로 결과를 조회할 수 있다.
참고로 스키마명은 구조상 여러개의 스키마를 구분하여 사용하는 디비에서
스키마명을 누락하여 조회하게되면 같은 이름의 여러개의 테이블이 조회되여 count가 2개이상 리턴될 수 있기에
확실하게 스키마명을 넣어서 조회하여야 정확한 결과값을 받아볼 수 있다.
반응형
'DataBase > Oracle' 카테고리의 다른 글
[Oracle] NULL은 비교할 수 없다?? (1) | 2022.05.20 |
---|---|
[Oracle] ORA-28002, 비밀번호만료, 오라클 비밀번호 만료 제한 해제 (0) | 2021.02.09 |
[Oracle] 모든테이블 한번에 삭제, 테이블 일괄삭제, 테이블 전체삭제 (3) | 2020.08.19 |
[Oracle] 오라클 ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다 (0) | 2020.08.12 |
댓글