Bonjour,
J'ai un problème de conversion de données.
J' exécute la requête suivante:
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
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
Partager