bonjour,

j'ai un souci de procédure PL/Sql.
Oracle Discoverer me génére des requetes SQL, ces requetes je les mets dans une procedure stockée pour générer un fichier CSV j'ai trois type d'erreurs !!

Erreur1 PLS-00103: Symbole "CASE" rencontré à la place d'un des symboles suivants :
Erreur2 PLS-00222: la fonction nommée 'DECODE' n'existe pas dans cette étendue
mes questions Comment remplacer le DECODE dans la condition WHERE??
peut on utiliser CASE WHEN en 8.1.7 ?
Merci


REQUETE1: condition where
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
WHERE 
((DG_TYPEMARCHECONTRAT = DH_DG_MARCHECONTRAT AND DG_NUMMARCHECONTRAT = DH_DG_NUMMARCHECONTRAT)
and (DH_DG_MARCHECONTRAT = JP_DG_TYPEMARCHECONTRAT AND DH_DG_NUMMARCHECONTRAT = JP_DG_NUMMARCHECONTRAT AND DH_NUMLOT = JP_DH_NUMLOT)
and (JP_DG_TYPEMARCHECONTRAT = KU_JP_TYPEMARCHECONTRAT AND JP_DG_NUMMARCHECONTRAT = KU_JP_NUMMARCHECONTRAT AND JP_DH_NUMLOT = KU_JP_NUMLOT AND JP_NUMLIGNEFOURNISSEUR = KU_JP_NUMLIGNEFOURNISSEUR)
--ERREUR DECODE	and (CODE_OPERATION = DECODE(KU_KH_CODEOPERATIONSERVICE,' ',KU_KI_CODEOPERATIONPROGRAMMEE,KU_KH_CODEOPERATIONSERVICE)))
AND (qry5.EXERCICE = TO_NUMBER(TO_CHAR(qry5.DATE_DEBUT,'YYYY')))
AND (TO_CHAR(qry5.DATE_DEBUT,'YYYY') = TO_CHAR(SYSDATE-1,'YYYY'))
AND (TO_CHAR(qry5.DATE_FIN,'YYYY') > TO_CHAR(qry5.DATE_DEBUT,'YYYY'))
AND (qry3.JP_JM_CODETYPEFOURNISSEUR = 'TI')  AND
(DATE_MAJ >= TO_DATE(DateMinTrav,'DD/MM/YYYY') AND
DATE_MAJ <= TO_DATE(DateMaxTrav,'DD/MM/YYYY')))
ORDER BY DG_NUMMARCHECONTRAT ASC