안녕하세요.
어떻게 이런경우가 생기는지 알수가 없습니다.
사용환경 :
사용 Client OS : Windows 10 Pro
오라클 설치 OS : 위와 동일한 Windows 10 Pro
Oracle Version : Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Oracle Client Tool : DBeaver
1) 현재 NLS_DATE_FORMAT : 확인
NLS_DATE_FORMAT DD-MON-RR
2) spfile사용여부를 아래와 같이 확인하고
SYS>show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string C:\OPT\ORACLE\PRODUCT\12.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA
3) sqlplus에 system 유저로 접속해서 아래와 같이 변경
alter system set nls_date_format = 'YYYY-MM-DD' scope=spfile;
4) shutdown immediate, startup를 해서
다시 확인해보면와 같이 기존과 같이 동일합니다.
NLS_DATE_FORMAT DD-MON-RR
5) 위의 spfile을 에디터로 확인해보면 아래와 같이 되어있습니다
*.nls_date_format='YYYY-MM-DD'
도대체 왜 이럴까요 ?
6. 그리고 NLS_DATE_FORMAT와 상관없이
select *
from ord
where 1=1
and ord_dt = to_date('20120101', 'yyyymmdd')
;
여기서 ord_dt = '20210101' 와 같이 저장되어있는데 아래와 같은 에러가 왜 생길까요 ?
SQL Error [1861] [22008]: ORA-01861: literal does not match format string
뭔가 잘못된게 있을텐데..찾을수가 없습니다.
혹 알고 계신분 조언 부탁드립니다.
감사합니다.
|