Solution de l’erreur Oracle ORA-01843

Musée des erreurs, scripts et trucs Ajouter un commentaire

Un exemple :

SQL> update ma_table
set ma_date=’10/04/2009′
/
ERROR at line 1:
ORA-01843: not a valid month

Le format de date proposé est incompatible avec la base de données cible.

Ceci se produit lorsque le client Oracle n’est pas dans la même configuration que le serveur au niveau de son environnement de ‘localisation’ : environnement NLS (Oracle National Language Support

solution temporaire (la durée de la session)
SQL> ALTER SESSION SET NLS_DATE_FORMAT=’MM/DD/YYYY’;

solution un peu plus pérenne sous Unix/Linux :
Changer le paramétrage du client Oracle, pour positionner le nouveau format de date par défaut.
Ceci se fait avec une variable d’environnement Unix :

$> export NLS_DATE_FORMAT=DD/MM/YYYY

Sous Windows (personne n’est parfait) l’environnement client Oracle est spécifié dans la base de registres, donc on modifiera / ajoutera une clé NLS_DATE_FORMAT dans la section HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE avce regedit par exemple.

Note : lorsqu’on utilise un client léger (application Web ou i*SQLPlus par exemple), il ne faut pas regarder la cofiguration du poste client bien sûr, mais celle su serveur Web qui, dans une architecture 3-tier, est le ‘vrai’ client de la base de données…

Faire un commentaire