Oracle 10.2.0.1 (I know, version out-of-date) on Windows 2003:
The other day one of my stored procedures error’ed out with:
ORA-01801: date format is too long for internal buffer somewhere near a line in which I was doing the following assignment:
1 |
d := to_char(c.date_field,'YYYYMMDD'); |
Where d is of type varchar2, and c is a row from a cursor for loop, and date_field is a date column in the cursor. Selecting the date field from the database didn’t look odd:
1 |
select date_field from table_name t where t.id = <id of failing row>; |
’04-AUG-17′
However, selecting to_char did yield something odd:
1 |
select to_char(date_field,'YYYYMMDD') from table_name t where t.id = <id of failing row>; |
‘00000000’
Odd, no 04, no AUG and no 17.
Find out how I resolved this by reading the post on my Oracle Musings blog.
Load comments