[Oracle] 전체 테이블중에서 원하는 Comment만 검색 & 수정하기
- DB/Oracle
- 2018. 9. 18.
오라클 전체테이블 중에서 '원가요소'가 포함되어있는 Comment를 '관리계정'으로 바꾸라는 요청을 받았습니다. 사용하는 용어가 달라졌다고 하더군요.... 이런 요청을 받고 전체 테이블을 일일이 뒤져가면서 원가요소가 포함되어있는 Comment를 찾아서 관리계정으로 바꿔주는것은 굉장히 무식한 짓입니다. 쿼리문을 통해 한번에 간편하게 Comment를 바꾸는 방법에 대해 알아보겠습니다.
전체 테이블중에서 원하는 Comment만 검색 & 수정하기
사용한 방법
SELECT A.TABLE_NAME, A.COLUMN_NAME, A.DATA_TYPE, DATA_LENGTH, COMMENTS
FROM USER_TAB_COLUMNS A,USER_COL_COMMENTS B
WHERE A.COLUMN_NAME LIKE '%%'
AND B.COMMENTS LIKE '%원가요소%'
AND A.TABLE_NAME = B.TABLE_NAME
AND A.COLUMN_NAME = B.COLUMN_NAME;
1. 전체 테이블중에서 Comment가 '원가요소' Comment를 가지고 있는 컬럼을 확인합니다. 모든작업은 확인이 가장 중요한듯 합니다. 바꾸고싶은 Comment들을 확인하고 작업이 끝난 후에도 꼭 Comment가 바뀌었는지 확인합시다.
SELECT REPLACE
('COMMENT ON COLUMN [계정명].'||A.TABLE_NAME||'.'||A.COLUMN_NAME||'IS'''||B.COMMENTS||''';'원가요소','관리계정')
FROM USER_TAB_COLUMNS A, USER_COL_COMMENTS B
WHERE A.COLUMN_NAME LIKE '%%'
AND B.COMMENTS LIKE '%원가요소%'
AND A.TABLE_NAME = B.TABLE_NAME
AND A.COLUMN_NAME = B.COLUMN_NAME;
2. 바꿔야 할 COMMENT 쿼리문을 만들어줍니다. 이렇게 써주면 SELECT결과창에 ALTER COMMENT문이 쿼리가 쭉 만들어집니다.
COMMENT ON COLUMN [계정명].[테이블명].[컬럼명] IS '[교체할 Comment명]';
COMMENT ON COLUMN [계정명].[테이블명].[컬럼명] IS '[교체할 Comment명]';
COMMENT ON COLUMN [계정명].[테이블명].[컬럼명] IS '[교체할 Comment명]';
.........
.........
.........
.........
3. 2번에서 조회한 쿼리문을 실행시켜줍니다.
'DB > Oracle' 카테고리의 다른 글
[Oracle] 오라클 SELECT한 데이터를 활용하여 UPDATE하기 (0) | 2019.01.09 |
---|---|
[Oracle] 오라클 조회 프로시저 만들기 예제 (0) | 2019.01.06 |
[Oracle] 계정에 테이블 DML 권한부여/취소하기(GRANT/REVOKE) (3) | 2018.09.17 |
[Oracle] 테이블 생성시 VARCHAR2형을 CHAR형으로 치환하기 (0) | 2018.09.16 |