[Oracle 9i] NLS_DATE_FORMAT='DD/MM/YYYY'
L'objectif est de contraindre les dates à une période afin d'éviter les valeurs excentriques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
alter table MACHIN add constraint CC_DTMACHIN       
  check (DTMACHIN  between '01-JAN-1990' and '01-JAN-2100');
La table est modifiée. J'exécute une requète
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select DTMACHIN from MACHIN
J'ai les enregistrements attendus avec des dates correctes.
Maintenant je modifie le format de date.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
alter session set NLS_DATE_FORMAT='DD-MON-YY'
J'exécute la requète et là "fin de fichier de communication" et sur le fichier log "ORA-07445: exception trouvée : vidage coeur ... [Address not mapped to object] ".

Si quelqu'un a une ébauche d'explication, je suis preneur merci d'avance.

PS: j'ai une solution avec un trigger mais cela ne m'interresse pas.
J'ai aussi essayé le code suivant mais cela ne change rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 alter table MACHIN add constraint CC_DTMACHIN       
  check (DTMACHIN between to_date('01/01/1990', 'dd/mm/yyyy') 
    and to_date('01/01/2100', 'dd/mm/yyyy'));