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.