Like dans une procédure stockée

cs_veronique1 Messages postés 2 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 2 février 2005 - 31 janv. 2005 à 15:12
cs_surfman Messages postés 46 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 16 septembre 2008 - 16 sept. 2008 à 13:28
Bonjour à tous,
j'utilise une requête dans une procédure stockée avec un like , la valeur provient d'un paramètre , et ma rquête ne fonctionne pas si je mets '%' dans mon paramètre.
J'ai essayé d'utiliser la fonction trim mais il ne reconnait pas cette fonction.
Quelqu'un a une idee ?
Merci d'avance

3 réponses

cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
1 févr. 2005 à 23:13
Hummm

Tu peux donner la requette ici ?

Sinon essaye avec un N avant le '%

Romelard Fabrice (Alias F___)
0
cs_veronique1 Messages postés 2 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 2 février 2005
2 févr. 2005 à 09:36
Sinon essaye avec un N avant le '% : un N ? c'st a dire ?

sinon entre temps j'ai essaye avec les fontions rtrim et ltrim, mais c'est pareil.
je travaille en firebird et je me demande s'il ne rajoute pas des espaces à la fin pour atteindre le nombre de caractères exact de la variable.
( je sais qu'en firebird, il enregistre les champs dans sa base comme ca).

Je t'envoie ma proc se sera plus simple.

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

CREATE PROCEDURE LG_PREPARATION(<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


ETABLISSEMENT CHAR(10),


DATE_PREVUE TIMESTAMP,


DATE_PREVUE2 TIMESTAMP,


TRANSPORTEUR CHAR(10)


) RETURNS (


LG_RGP_ETABLISSEMENT CHAR(10),


LG_RGP_TYPE_DOC CHAR(10),


LG_RGP_NUM_DOC CHAR(15),



)


AS
BEGIN



FOR SELECT LG_RGP_ETABLISSEMENT, LG_RGP_TYPE_DOC, LG_RGP_NUM_DOC,


FROM LG_REGROUPEMENT


WHERE
LG_RGP_ETABLISSEMENT LIKE :ETABLISSEMENT


AND LG_RGP_CODE_ETAT LIKE :CODE_ETAT


AND LG_RGP_DATE_PREVUE BETWEEN :DATE_PREVUE
AND :DATE_PREVUE2


AND LG_RGP_TRANSPORTEUR LIKE :TRANSPORTEUR


ORDER BY LG_RGP_NUM_DOC DESC


INTO :LG_RGP_ETABLISSEMENT, :LG_RGP_TYPE_DOC, :LG_RGP_NUM_DOC


DO SUSPEND;


END



END
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

je lui demande :

select * from lg_preparation('VERONIQUE%','01-01-1970','12-31-2999','%'); -> il me renvoie mes lignes

select * from lg_preparation('%','01-01-1970','12-31-2999','%'); -> il ne me renvoie rien
0
cs_surfman Messages postés 46 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 16 septembre 2008
16 sept. 2008 à 13:28
et en remplacant ton % par * sur ta deuxième requete ?
0