Like dans une procédure stockée

Signaler
Messages postés
2
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
2 février 2005
-
Messages postés
46
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
16 septembre 2008
-
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

Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
6
Hummm

Tu peux donner la requette ici ?

Sinon essaye avec un N avant le '%

Romelard Fabrice (Alias F___)
Messages postés
2
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
2 février 2005

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
Messages postés
46
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
16 septembre 2008

et en remplacant ton % par * sur ta deuxième requete ?