DB/ORACLE

[ORACLE] 컬럼 DEFAULT 값 수정(타입), SYSDATE 날짜 변경

고구마맨 2023. 11. 9. 15:52
반응형

■ Default 값이 설정되지 않은 컬럼에 기본값을 설정하기 위해서 쿼리를 돌렸다. 그런데 아무리 해도 실행되지 않고 에러 메세지만 내뱉었다. 그래서 무엇이 문제일까 찾아보다가 결국엔 설마하면서 수정하니 되었다. 작은 부분도 놓치지 않아야 하는데 잊지 않을 것 같다.

 


최초 작성 쿼리

 

ALTER TABLE 테이블 MODIFY(컬럼 VARCHAR2 DEFAULT TO_CHAR(SYSDATE,'YYYYMMDD'));

 

발생 에러

 

=============================================

 

ORA-00906: 누락된 좌괄호
00906. 00000 -  "missing left parenthesis"

 

=============================================

 

수정 쿼리

 

ALTER TABLE SSOUSER MODIFY(CHANGE_DATE VARCHAR2(8) DEFAULT TO_CHAR(SYSDATE,'YYYYMMDD'));

 

데이터 타입만 작성하면 될거라 생각했는데 저 부분이 문제였다니.. 디테일한 부분도 잘 생각해야 할 것 같다.

 


 

+ 추가(TRUNC 함수)

 

시간 데이터 값을 조정해야 했는데 간단히 90일 전으로 계산되어 삽입하고자 하였다. 그 때 이 함수를 사용했다.

 

 

TRUNC(SYSDATE)-90

 

TO_CHAR(TRUNC(SYSDATE)-90,'YYYYMMDD')

TO_CHAR(TRUNC(SYSDATE)-90,'YYYYMMDD') || TO_CHAR(SYSDATE,'HHMISS')

 

해당 함수는 숫자 데이터를 다룰 때 종종 쓰이는 함수로 효용성이 좋다. 쓰임을 알아놓으면 편하다.

반응형