Bonjour,

J'ai un problème de conversion de données.

J' exécute la requête suivante:

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
SELECT e.achvte||e.typeve||LPAD(e.numeve,9,0) as reference
FROM EVE e, ZOD z
WHERE e.codsoc = p_codsoc
AND e.achvte = p_achvte
AND e.typeve = p_typeve
AND z.typzod = 'EVE'
AND z.numzod = cte_zod_niveau_facture
AND z.valzod != '0'
AND z.codsoc = e.codsoc
AND z.clezod = e.achvte||e.typeve||LPAD(e.numeve,9,0)
AND NOT EXISTS (SELECT distinct numech FROM EVM m, EVT t
			WHERE m.codsoc = e.codsoc
			AND m.achvte = e.achvte
			AND m.typeve = e.typeve
			AND m.numeve = e.numeve
			AND t.codsoc = m.codsoc
			AND t.achvte = m.achvte
			AND t.typeve = m.typeve
			AND t.numeve = m.numeve
			AND t.numpos = 0
			AND m.valzn5 = 'IMP'
			AND m.valzn13 > t.codzn8 + delai)
La dernière clause n'est pas correcte.

m.valzn13 est de type VARCHAR2(40) et contient une date au format 'YYYYMMDD'
t.codzn8 est de type VARCHAR2(12) et contient une date au format 'YYYYMMDD'
delai est récupéré par une fonction qui retourne du VARCHAR2.

Alors que si je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
AND m.valzn13 > to_char(sysdate + delai, 'YYYYMMDD')
ça ne pose pas de problème.

Avez vous une idée pour résoudre ce souci,

Merci.

BDD: Oracle 10g

Balises ajoutées par Magnus, merci d'y penser