Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ora-01840: input value not long enough for date format

apollon27Jun 24 2020 — edited Jun 24 2020

Hello,

I am using Database 12c Enterprise Edition Release 12.1.0.2.0

When I execute the following query, all are ok.

SELECT

A.F_INS_INSURED_ID INS_INSURED_ID, B.SURNAME|| ' ' || B.NAME|| ' ' || B.FATHER_NAME || ' ' || B.MOTHER_NAME FULLNAME,

A.F_YEAR YEAR,

A.F_MONTH MONTH,

TO_DATE('01/'||TO_CHAR(NOT_OK_MONTH(A.F_MONTH))||'/'||TO_CHAR((A.F_YEAR)),'DD/MM/RRRR') DATE_1,

TO_DATE('01/'||TO_CHAR(1)||'/'||TO_CHAR(2020),'DD/MM/RRRR') BETWEEN_1,

TO_DATE('01/'||TO_CHAR(6)||'/'||TO_CHAR(2020),'DD/MM/RRRR') BETWEEN_2

FROM CON_WORK_APD_INSURERS A,

 CON\_WORK\_APD\_EMPLOYERS E, 

 REG\_INSURED B,

 CON\_ALL\_EMPLOYERS C 

WHERE B.INSURED_ID = a.F_INS_INSURED_ID

AND a.F_INS_INSURED_ID = '9939998'

AND C.EMP_EMPLOYER_ID = A.F_EMPLOYER_ID

--AND TO_DATE('01/'||TO_CHAR(NOT_OK_MONTH(A.F_MONTH))||'/'||TO_CHAR((A.F_YEAR)),'DD/MM/RRRR') BETWEEN

-- TO_DATE('01/'||TO_CHAR(1)||'/'||TO_CHAR(2020),'DD/MM/RRRR') AND TO_DATE('01/'||TO_CHAR(6)||'/'||TO_CHAR(2020),'DD/MM/RRRR')

AND A.WORAPDEM_BRANCH_CODE = E.BRANCH_CODE

AND A.WORAPDEM_YEAR = E.YEAR

AND A.WORAPDEM_SID = E.SID

AND NVL(A.COPIED_TO_HISTORY, '0') = '0'

AND A.STATUS = '1'

AND E.STATUS = '1'

AND E.APD_RECEIVED_FLAG IN ('1', '4', '3')

AND A.REG_CHECKED = '1'

AND E.REG_CHECKED = '1'

AND A.F_MONTH IS NOT NULL

AND A.F_YEAR IS NOT NULL

and the result is

result_query.jpg

but when I uncomment lines 17-18, which are the colums DATE_1, BETWEEN_1 and BETWEEN_2 then

it appears me the message ORA-01840.

what is wrong?

not_ok_month is a function

CREATE OR REPLACE FUNCTION NOT_OK_MONTH(P_MONTH IN NUMBER) RETURN NUMBER IS

BEGIN

IF P_MONTH BETWEEN 1 AND 12 THEN

RETURN P_MONTH;

ELSE

RETURN 1;

END IF;

END;

Thank you

This post has been answered by Solomon Yakobson on Jun 24 2020
Jump to Answer
Comments
Post Details
Added on Jun 24 2020
8 comments
7,535 views