Fehlermeldung: ORA-01861: Literal stimmt nicht mit Formatzeichenfolge überein

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Fehlermeldung: ORA-01861: Literal stimmt nicht mit Formatzeichenfolge überein

andreas schmidt
Administrator
Diese Fehlermeldung erscheint, wenn man ein Datum nicht im vorgegebenen Standardformat an die Datenbank schickt.

So funktioniert etwa das folgende Statment nur, wenn die Schreibweise '20.10.1939' das Standardformat ist.
insert into person (id, vorname, nachname, geburtsdatum)
values (1, 'Peter', 'Schulz', '20.10.1939');
Sicherer ist folgende Schreibweise, die unabhängig vom Standardformat ist. Hierbei wird in der to_date-Methode direkt als 2. Parameter angegeben wie das Format zu interpretieren ist.

insert into person (id, vorname, nachname, geburtsdatum)
values (1, 'Peter', 'Schulz', to_date('20.10.1939','dd.mm.yyyy'));
Setzen kann man das Standardformat mit folgender Anweisung:
alter session set NLS_DATE_FORMAT='...';
Und hier steckt auch der Grund, warum es bei einigen heute nicht funktioniert hat. Im Beispielskript
instead-of-trigger.sql setze ich das das Datumsformat wiefolgt:
alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
Tja, und danach gibts halt ein neues Standardformat ;-(.

Zurücksetzen auf das alte Format kann man es mit folgender Anweisung:
alter session set NLS_DATE_FORMAT='dd.mm.yyyy';