Today I was trying to create a new record that had a EFFDT and one other date field that needed to be NULL. During the update oracle failed to identify null as a date and gave the error "ORA-01841: (full) year must be between -4713 and +9999, and not be 0". The solution was to not set the date field to null but instead use Date function with the value 0.
Local Record &rec = CreateRecord(Record.GENL_DEDUCTION); &rec.EMPLID.Value = &MCMADSJB.EMPLID.Value; &rec.COMPANY.Value = &MCMADSJB.company.value; &rec.DEDCD.Value = &MCMADSJB.company.value; If &MCMADSJB.effdt.value > &MCMADSMAP.effdt.value Then &rec.EFFDT.Value = Date(&MCMADSJB.effdt.value); Else &rec.EFFDT.Value = Date(&MCMADSMAP.effdt.value); End-If; &rec.DEDUCTION_END_DT.Value = Date(0); &result = &rec.Insert();
The Date(0) will correctly make the database field null.
No comments:
Post a Comment