Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle NLS_DATE_FORMAT ne fonctionne pas correctement

Si vous le faites :

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

Vous obtenez une erreur, ORA-01810: format code appears twice .

Si vous utilisez le même modèle de format que votre TO_CHAR alors ça marche :

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

Session altered.

select SYSDATE from dual;

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

Cela fonctionne dans SQL Developer et SQL*Plus.

Pour votre question mise à jour sur l'insertion, la documentation sur le format datetime dit :

Vous ne pouvez donc pas utiliser une chaîne avec le suffixe dans le cadre de votre insertion, soit explicitement, soit via le NLS_DATE_FORMAT . Vous devrez le supprimer de la chaîne ou adapter le modèle de format pour le traiter comme une valeur fixe.