Je suis sous Oracle 9.2.0.4 et j'ai une fonction :
Le but de cette fonction est de retourner le xéme LUNDI après la date en paramètre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 FUNCTION FindDate(pDateEnt NUMBER, pPos NUMBER) RETURN NUMBER IS vDate NUMBER(12); MessErr VARCHAR2(512); MessCode NUMBER; PRAGMA AUTONOMOUS_TRANSACTION; BEGIN EXECUTE IMMEDIATE 'alter session set nls_language = ''FRENCH'''; SELECT TO_CHAR(TO_DATE(DECODE(TO_CHAR(TO_DATE(pDateEnt,'YYYYMMDDHH24MI'),'D'),'1',pDateEnt, TO_CHAR(NEXT_DAY(to_date(pDateEnt,'YYYYMMDDHH24MI'),'LUNDI')-7,'YYYYMMDDHH24MI')),'YYYYMMDDHH24MI')+7*(pPos-1),'YYYYMMDD') || '0000' INTO vDate FROM DUAL; RETURN vDate; EXCEPTION WHEN OTHERS THEN .... END F_FindDate;
Comme je veux être indépendant du paramétrage de la base, je fais un
Comme je veux pas casser le paramétrage de la base je le fais en
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 alter session set nls_language = 'FRENCH'
Jusque la ça va...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2AUTONOMOUS TRANSACTION
Le problème est que je prends aléatoirement une erreur ORA-06519. Et là je ne comprends plus rien...
Parce que d'une part, même si je suis bien dans une AUTONOMOUS TRANSATION, je ne fais aucune mise a jour et d'autre part parce que dans plus de 99% des cas cela passe sans erreur et seulement de temps en temps j'ai cette erreur ORA-06509.
Existe il une autre solution pour obtenir le même résultat (trouver LUNDI de manière indépendante de la base).
Avez vous une idée d'où vient cette erreur "aléatoire"
Merci







Répondre avec citation






Partager