SQL Error: ORA-01861: literal does not match format string 01861
Solution 1:
Try replacing the string literal for date '1989-12-09'
with TO_DATE('1989-12-09','YYYY-MM-DD')
Solution 2:
The format you use for the date doesn't match to Oracle's default date format.
A default installation of Oracle Database sets the DEFAULT DATE FORMAT to dd-MMM-yyyy
.
Either use the function TO_DATE(dateStr, formatStr)
or simply use dd-MMM-yyyy
date format model.
Solution 3:
You can also change the date format for the session. This is useful, for example, in Perl DBI, where the to_date() function is not available:
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD'
You can permanently set the default nls_date_format as well:
ALTER SYSTEM SET NLS_DATE_FORMAT='YYYY-MM-DD'
In Perl DBI you can run these commands with the do() method:
$db->do("ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD');
http://www.dba-oracle.com/t_dbi_interface1.htm https://community.oracle.com/thread/682596?start=15&tstart=0