2014-11-14 2 views
0

현재 내가 아래 문ORA-01861 : 형식 문자열과 일치하지 않는 문자,

AND (AIA.INVOICE_DATE >= NVL(TO_DATE(:P_INV_DT_FROM,'DD-MON-YYYY'), '01-JAN-1900') 
OR AIA.INVOICE_DATE IS NULL) 
AND (AIA.INVOICE_DATE <= NVL(TO_DATE(:P_INV_DT_TO,'DD-MON-YYYY'), '31-DEC-4712') 
OR AIA.INVOICE_DATE IS NULL) 
그러나

, 나는 아래의 오류가 점점 오전과 날짜 필드를 비교하기 위해 노력하고,

ORA- 01861 : 리터럴 형식 문자열과 일치하지 않습니다. 01861. 00000 - "리터럴이 형식 문자열과 일치하지 않습니다."

* 원인 : 입력의 리터럴은 의 리터럴과 같아야합니다. 형식 문자열 (선행 공백 제외). "FX"한정자를 토글 한 경우 리터럴은 정확히 일치해야합니다 (추가 공백없이 ).

* 지침 : 리터럴과 일치하도록 형식 문자열을 수정하십시오.

PS : ': MM : SS YYYY/MM/DD HH24'당신이 필요로하는

+0

'01 -JAN-1900 ', '31 -DEC-4712' ' –

+0

'AIA.INVOICE_DATE '에 "형식"이 있으면 문자열이 아니고 문자열이어야합니다. 날짜 열. –

답변

2

AIA.INVOICE_DATE은 'DD-MON-YYYY'와 p_inv_dt_from 및 p_inv_dt_to의 형태로의 형태 TN입니다 TO_DATE ('01 -JAN-1900 ','DD-MON-YYYY ')로 감싸는 '01 -JAN-1900'및 '31 -DEC-4712 '형식을 명시 적으로 식별합니다. 그렇지 않으면 오라클은 코드를 실행중인 사람의 환경 세션 설정에 따라 문자열을 날짜로 변환하려고 시도합니다. 예를 들어, 세션에 '01 -JAN-1900 '과 호환되지 않는 NLS_DATE_FORMAT ='MM/DD/YYYY '이있을 수 있습니다.

관련 문제