Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/03/2005, 10h37   #1
Invité régulier
 
Inscription : janvier 2003
Messages : 36
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 36
Points : 6
Points : 6
Par défaut PB proc stock avec like variable %

Bonjour,

j'ai créé une proc stock toute simple :
CREATE OR REPLACE FUNCTION list(varchar) RETURNS org AS '
select * from org where code like $1;
'
LANGUAGE 'sql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

jusque là out va bien. sauf que je ne veux pas qu'il me renvoie uniquement ma condition $1 mais j'aimerais qu'il me renvoie tous les enregistrement dont code commence par $1.

j'ai essayé $1+%, $1%, $1+'%' et d'autres trucs que je me rappelle plus.

quelqu'un aurait-il une idée ?!!

Merci

PS : est-il possible de ne récupérer que certaine colonne et non pas *. quand je fais un select col1,col2 etc...
j'ai un message d'erreur qui me dit qu'il y a une erreur à ou près de select.
pseudomh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2005, 11h03   #2
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
Bonjour,
la concatenation se fait avec l'operateur double pipe :

$1||'%'


Il est tout a fait possible de ne pas spécifier * mais ton returns doit changer.
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2005, 11h31   #3
Invité régulier
 
Inscription : janvier 2003
Messages : 36
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 36
Points : 6
Points : 6
merci,

qu'est que je peux mettre en returns comme mes 2 colonnes sont des varchar j'avais essayé varchar varchar mais bon...ça marche pas.
pseudomh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2005, 11h49   #4
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
essaye de creer un type genre :

Code :
1
2
CREATE TYPE deuxvarchar AS
( col1 varchar, col2 varchar);
ensuite tu defini ta fonction :

Code :
1
2
3
4
CREATE OR REPLACE FUNCTION list(varchar) RETURNS deuxvarchar AS '
select col1,col2 from org where code like $1;
'
LANGUAGE 'sql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h39.


 
 
 
 
Partenaires

Hébergement Web