Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle NLS_DATE_FORMAT non funziona correttamente

Se lo fai:

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

Viene visualizzato un errore, ORA-01810: format code appears twice .

Se utilizzi lo stesso modello di formato del tuo TO_CHAR allora funziona:

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

Session altered.

select SYSDATE from dual;

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

Funziona in SQL Developer e SQL*Plus.

Per la tua domanda aggiornata sull'inserimento, la documentazione del formato datetime dice:

Quindi non puoi usare una stringa con il suffisso come parte del tuo inserto, né esplicitamente né tramite NLS_DATE_FORMAT . Dovresti rimuoverlo dalla stringa o adattare il modello di formato da trattare come un valore fisso.