Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle NLS_DATE_FORMAT funktioniert nicht richtig

Wenn ja:

alter session set nls_date_format='DD DDTH MON YYYY';

Sie erhalten einen Fehler, ORA-01810: format code appears twice .

Wenn Sie dasselbe Formatmodell wie Ihr TO_CHAR verwenden dann funktioniert es:

alter session set nls_date_format='DY DDTH MON YYYY';

Session altered.

select SYSDATE from dual;

SYSDATE
-----------------
FRI 23RD AUG 2013

Dies funktioniert in SQL Developer und SQL*Plus.

Für Ihre aktualisierte Frage zum Einfügen, die Dokumentation zum datetime-Format sagt:

Sie können also keine Zeichenfolge mit dem Suffix als Teil Ihrer Einfügung verwenden, weder explizit noch über das NLS_DATE_FORMAT . Sie müssten es aus der Zeichenfolge entfernen oder das Formatmodell so anpassen, dass es als fester Wert behandelt wird.