to_date 이렇게 사용해도 되나요? 0 2 3,883

by poodle [PL/SQL] to_date sql [2017.03.10 12:30:36]


안녕하세요~

to_date()함수 관련 질문을 드리려고 합니다.

참 자주 사용하는 함수 인데 이런 상황이 벌어져서 당황스럽네요

회사에 오라클 데이터를 아래 버전으로 이관하였습니다

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi->

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

웹 서버도 통채로 이관하고 웹을 접속하니 유독 화면 오류가 나서 확인을 해보니 to_date에서 오류가 나더라구요

select  to_char(to_date(D_ADD),'YYYY-MM-DD') from ~~~

참 희안한게 이전에는 에러없이 잘 돌아 갔던거였고 토드에서 직접 접속했을때도 잘 돌아가고

로컬 웹에서 이전한 11g로 붙어 조회를 해보니 오류없이 잘 돌아가더라구요

그런데 왜 유독 한 서버에서만 데이터 타입 오류가 나는지 궁금합니다.

아래와 같이 바꿔주니 오류가 나질 않네요;;;

select  to_char(to_date(D_ADD,'YYYY-MM-DD'),'YYYY-MM-DD') from ~~~

 

현재 서버가 jeus인데 원인을 아시는지요?  오라클 세팅때문에 이런 상황이 일어난건지 아니면 서버 세팅때문인지 궁금해요

그리고 위와 같이 쓰는게 정확한 표현이 아닌지도 궁금합니다.

 

답변 부탁드려요ㅜㅜ

by 마농 [2017.03.10 13:16:03]

형변환시 포멧을 정확하게 지정하지 않았었네요.
포멧이 지정되지 않을 경우 기본 지정 포멧을 적용하게 되고
기본 포멧은 매 환경마다 다를 수 있기 때문에 에러가 날 가능성이 큽니다.
서버, 클라이언트, 사용툴, 웹서버, 미들웨어 등등 다 다를 수 있습니다.
포멧을 정확하게 지정하면 환경에 영향을 받지 않습니다.
포멧을 정확하게 지정한게 맞습니다.


by poodle [2017.03.10 13:51:39]

결론적으로 포멧을 제대로 쓰지 않아 일어난 에러군요!!

그동안 왜 에러가 안났는지 신기하지만

다음부터는 포멧을 정확해 써야 겠습니다.

답변 감사드립니다.

오늘도 좋은 하루 보내세요~

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입