본문 바로가기

IT/SQL

ALL_TAB_COLS 사용하여 쿼리 편하게 쓰기 (오라클)

오늘 쓸 건 거창한 건 아니고 일할 때 종종 쓰는 쿼리를 공유하려고 한다. 

 

1
2
3
4
SELECT ','||COLUMN_NAME
FROM ALL_TAB_COLS
WHERE TABLE_NAME = '테이블명'
ORDER BY COLUMN_ID
cs

 

오라클에서 ALL_TAB_COLS 는 현재 유저가 접근 가능한 테이블의 컬럼 정보를 조회할 수 있는 테이블이다. 

INSERT 문이나 UPDATE 문 작성할 때 이 쿼리를 실행하고 결과를 복사 붙여 넣기 하면 쿼리를 빨리 만들 수 있다. 

 

콤마를 앞에 붙이는 이유는 뒤에 붙이면 밑에 컬럼을 추가할 때 기존 마지막 컬럼에 콤마를 빠트리는 실수할 가능성이 있다. 그리고 추가하지 않더라도 삭제하는 경우에도 CTRL+D 한 번만 해주면 되서 편하다. 

 

1
2
3
4
SELECT ','||COLUMN_NAME||' = #{'||COLUMN_NAME||'}'
FROM ALL_TAB_COLS
WHERE TABLE_NAME = '테이블명'
ORDER BY COLUMN_ID
cs
 
UPDATE 할 때는 이런 식으로 변형해서 사용하면 된다.

'||'  합성 연산자는 문자열을 붙여준다. 

 

오라클 공식문서:

https://docs.oracle.com/database/121/REFRN/GUID-F218205C-7D76-4A83-8691-BFD2AD372B63.htm#REFRN20277