|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : janvier 2003 Messages : 36 ![]() |
Bonjour,
j'essaie d'utiliser des conditions dans une procédure stocké mais ça ne marche pas : CREATE OR REPLACE FUNCTION list(varchar,varchar) RETURNS setof org AS $body$ IF $2 <> 'ADM' select * from organigramme where entorg like (select entorg from agent where matricule like $1) || '%'; else select * from organigramme; end $body$ LANGUAGE 'sql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; quelqu'un aurait-il une idée ? merci |
|
|
00
|
|
|
#2 | ||
|
Membre éclairé
![]() Inscription : décembre 2003 Messages : 431 ![]() |
La syntaxe a utiliser
Code :
|
||
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : janvier 2003 Messages : 36 ![]() |
j'avais déjà essayé mais ça ne marche pas.
CREATE OR REPLACE FUNCTION list(varchar,varchar) RETURNS setof org AS $body$ IF $2 <> 'ADM' then select * from org where entorg like (select entorg from agent where matricule like $1) || '%'; else select * from org; end if; $body$ LANGUAGE 'sql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; => il me met error at or near if
|
|
|
00
|
|
|
#4 | ||
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
il manque BEGIN .... END
Code :
|
||
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : janvier 2003 Messages : 36 ![]() |
...ça ne change rien, même message
|
|
|
00
|
|
|
#6 |
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
j'avais pas remarqué , mais tu prend comme langage 'sql' , je ne pense pas que begin, if, else, .... existent, c'est le plpgsql qui le permet
|
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : mai 2002 Messages : 131 ![]() |
Forcément, un bloc "IF THEN ELSE" dans une procédure codée en sql, il va avoir du mal à comprendre
EDIT : arf, trop lent |
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : janvier 2003 Messages : 36 ![]() |
oui mais là il me met "SELECT query has no destination for result data"
|
|
|
00
|
|
|
#9 | ||
|
Membre habitué
![]() Inscription : mai 2002 Messages : 131 ![]() |
Effectivement, c'est normal... Si on reste en plpgsql, il faut boucler sur ton select avec un for et faire une série de 'return next'...
Mais bon, il doit y avoir moyen de rester avec du SQL pur. Essaie comme ceci : Code :
|
||
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() Inscription : janvier 2003 Messages : 36 ![]() |
ça marche impec !!!
merci merci merci !!
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com