오라클 질문이요 0 5 94

by 세교동개득구 [Oracle 에러코드] [2018.06.12 15:34:14]


TO_CHAR(TO_DATE(OD) + (DAYS -1), 'YYYYMMDD') OD

이부분에서 지정한 월이 부족하다는 에러가 뜨는데.

OD 의 형식은 CHAR(8)

DAYS의 형식은 NUMBER(3)입니다.

근데 아이러니 하게도 사용하는 오라클은 10g이구요 ,

지인의 오라클은 11g인데 제쪽에선 위와 같이 지정한 월이 부족하다는 에러가 나고

지인의 오라클에선 에러가 안납니다. 툴자체도 동일한걸 사용하는데요..

이게 버전 문제인지 아님 설정의 문제인지.. 궁금하네요.

 

by 아발란체 [2018.06.12 15:41:24]

버전 문제 보다 함수에 대입된 데이타 문제로 보입니다.

'YYYYMMDD'에 바인딩되는 데이타가 달라서 지인과 차이가 있는 것이 아닐까 합니다.


by 세교동개득구 [2018.06.12 16:44:22]

같은형태에 형식이라서.. 대입된 데이터 문제는 아닌거같구요

DUAL 형식으로 TO_DATE('20180612') FROM DUAL 시에도 에러가 나네요.. 환경을 변경해야하는건지...


by 마농 [2018.06.12 15:59:05]

구문 문제입니다. 포멧 지정 안하셨네요.
포멧 지정 안하면, 사용 환경에 영향을 받습니다.
포멧 지정 해주면, 사용 환경에 영향을 받지 않습니다.
- 수정전 : TO_DATE(od)
- 수정후 : TO_DATE(od, 'yyyymmdd')


by 세교동개득구 [2018.06.12 16:44:52]

DUAL 로 조회시 포맷지정을 하지 않아도 조회는 되는걸로 알고 있는데요.. 이것조차 에러가 나네요 같은 에러로..


by 마농 [2018.06.12 17:03:18]

1. DUAL 로 조회시 포맷지정을 하지 않아도 조회는 되는걸로 알고 있는데요
  - 잘못 알고 계시네요.
  - 포멧지정 안하면 사용 환경에 따라 에러가 날수도 있고 정상조회되기도 합니다.
  - 정상조회된다고 해서 올바른 구문이라고 할 수 없습니다.
2. 이것조차 에러가 나네요 같은 에러로..
  - 이건 무슨 의미인가요?
  - 포멧을 지정 안해서 에러가 난다는 건가요?
  - 포멧을 지정 했는데도 에러가 난다는 건가요?
  - 포멧을 지정 안해서 에러가 난다는 것은 설명 드렸듯이 당연한 결과이구요.
  - 포멧을 지정 했는데도 에러가 난다는 것은 아발란체님 말대로 데이터 문제로 봐야 합니다.

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