bonjour,

j'ai une table bizarre, sur une ligne j'ai une date qui dépasse les capacités d'oracle (-4713 et +9999 pour l'année)

En effet, j'ai réussi à afficher des informations à propos de l'année de cette ligne étonnante. et je ne trouve pas pourquoi il y a cette valeur alors qu'apparemment d'après les infos données sur le format DATE on ne peut pas avoir ça:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
 
alter session set nls_date_format='DD/MM/YY';
select datex, (datex-sysdate) diff, (datex-sysdate)/365 div365
from table where id=1234;
 
-- ce qui donne
datex       diff        div365
---------  -----------  -----------
20/01/10   3652016      10005,523..
Ce qui nous donne en fait une différence entre aujourd'hui et la datex 10000 ans !!!

Comment pensez-vous que je puisse faire pour voir l'année réellement enregistrée dans la base afin de trouver les lignes en erreurs ? parceque pour cette ligne particulière j'ai mis un temps fous ...


PS: lorsque la données est utilisée j'ai une erreur ORA-01801 format de date trop longue: effectivement 5 chiffres pour l'année.

Idem ORA-01801 Si je fais alter session set nls_date_format='DD/MM/YYYY';