Comment remplacer dans une variable chaine une simple quote par une double quote ?
Bonjour à tous ,
devant reprendre du code d'un procédure stockée PL/SQL, je bute sur la chose suivante :
le problème se situe ( et je le comprends) au niveau du contenu d'une variable ( une référence fournisseur) qui contient une quote ( valeur de la variable Preffour_c : GUI'LLE'MET)
pour que la requête s'exécute, je cherche à doubler les quotes ( pour avoir GUI''LLE''MET)
cela va vous paraitre peut-être tout bête ... mais je n'y arrive pas
merci pour votre aide !!
voici le code de la requête qui me pose problème.
Code:
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 27 28 29 30 31 32 33
|
create or replace
FUNCTION FS_RECHERCHE_NEW ( PFam_c IN CHAR,
PFour_c IN CHAR,
PRefFour_c IN CHAR,
PMag_c IN CHAR,
PDateHistomou_c IN CHAR,
PDateJour_c IN CHAR) RETURN NUMBER AS
TYPE Curseur_c IS REF CURSOR;
ReqStEnv_c VARCHAR(1000);
ReqStEnv_c := ' SELECT HI.NMAGASIN , HI.NUMETIQ , JT.NUMBORD , SUM(HI.QTEVENDUE)
FROM HISTOMOU HI , JOURTR JT
WHERE HI.CFAMILLE = ''' || PFam_c || ''' AND
HI.CFOURNISS = ''' || PFour_c || ''' AND
HI.REFFOUR = ''' || PReffour_c || ''' AND
HI.MAGDES = ''' || PMag_c || ''' AND
HI.TYPEENREG LIKE ''E%'' AND
HI.DATEVENT BETWEEN
TO_DATE('''||PDateHistomou_c||''',''YYYYMMDD'') AND
TO_DATE('''||PDateJour_c||''' ,''YYYYMMDD'') AND
( HI.NMAGASIN,HI.NUMETIQ) NOT IN
( SELECT ST.NMAGASIN, ST.NUMETIQ
FROM STOCKC ST
WHERE ST.CONTRMARQ = HI.MAGDES AND
ST.NMAGASIN = HI.NMAGASIN AND
ST.NUMETIQ = HI.NUMETIQ ) AND
HI.NUMFACCLI = JT.NUMENREG
GROUP BY HI.NMAGASIN , HI.NUMETIQ , JT.NUMBORD ';
OPEN Cur_StEnvoye FOR ReqStEnv_c; |
j'ai essayé en amont de formater correctement la valeur de Preffour_c .... mais je n'y arrive pas ( fonction replace ?)