Bonjour tout le monde.
Je souhaiterais savoir s'il est possible d'interroger une procedure via une requete SQL...
Genre :
Ou doit-on passer par un trigger..?Code:select * from <ma_procedure>
Merci d'avance pour vos réponses ! :D
Version imprimable
Bonjour tout le monde.
Je souhaiterais savoir s'il est possible d'interroger une procedure via une requete SQL...
Genre :
Ou doit-on passer par un trigger..?Code:select * from <ma_procedure>
Merci d'avance pour vos réponses ! :D
Ouh là, il y a confusion sur les termes...
Une procédure et un trigger ne renvoient pas d'informations.
C'est une fonction qui fait ça. Donc, ta synthaxe est correcte pour une fonction.
ced
Oui, je me suis un peu mélangé les pinceaux.... :oops:
J'ai réussit à interroger ma fonction, mais par contre je n'arrive pas à à insérer le résultat de ma requête dans mon objet ROW...
Si tu as une idée sur la question... Voici mon morceau de code test:
Je cherche ardemment le problème mais sans succés... j'ai cette erreur:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 requete text; row ht_tradlibellefenetre%ROWTYPE; BEGIN requete:= 'SELECT INTO ' || row || ' lfe_lib_s FROM ht_tradlibellefenetre'; requete := requete || ' INNER JOIN hp_libellefenetre ON lfe_id = tlfe_lfe_k '; requete := requete || ' AND lfe_cod_s = ' || quote_literal(code); IF isActive = 'Y' THEN requete := requete || ' AND lfe_isactive = ' || quote_literal('Y'); END IF; IF restriction <> 'none' THEN requete := requete || ' AND lfe_fen_k = ' || quote_literal(fen_id); requete := requete || ' AND lfe_gpf_k = ' || quote_literal(gpf_id); END IF; EXECUTE requete;
J'avais précédemment essayer avec une variable de type "record" mais une erruer venait se glilsser... le code était le même, seul la déclaration de type de row était différente (maintenant ht_tradlibellefenetre%ROWTYPE avant record)Code:
1
2
3
4
5 ERROR: could not find array type for data type ht_tradlibellefenetre État SQL :42704 Contexte : SQL statement "SELECT 'SELECT INTO ' || $1 || ' lfe_lib_s FROM ht_tradlibellefenetre'" PL/pgSQL function "hpt_tradlibellefenetre" line 13 at assignment
En tous cas, merci de ton aide. :D
En fait j'ai un autre soucis plus... gênant...
Ma requête ne s'execute pas en fait... j'ai un zoli message d'errur :
Donc si je comprend bien... pour lui ma chaine qui contient ma requête n'est pas une requête... :cry:Code:
1
2
3
4 ERROR: cannot EXECUTE a null querystring État SQL :22004 Contexte : PL/pgSQL function "hpt_tradlibellefenetre" line 25 at execute statement
Je pensais pouvoir faire celà comme çà mais apparemment ... Non !
EDIT: Le problème vient de ma variable row ! Si je l'enlève ma requête contient de nouveau quelque chose....
Bonjour,
pour le select * from <mafonction> tu peux regarder ici :
http://postgresql.developpez.com/faq...kees#appelproc
Merci beaucoup j'arrive à interroger ma fonction... Mais celle-ci ne veut pas exécuter ma requête....
Pourtant quant je lui demande de me retourner la chaîne de caractères, la requête est bonne ! Seulement et seulement si j'enlève ma clause 'INTO' et ma variable de type %ROW...
je sens que je touche au but mais là je suis un peu dans le brouillard.... allez ! je vais manger ! les frites portent conseil... :D
je recherche queqlque chose aussi... je sais que çà existe mais je ne rappel plus du nom et de la syntaxe....
En gros il s'agit d'un argument de condition IF pour savoir si un SELECT à renvoyer une valeur... Je ne sais pas si je suis très claire... mais je n'arrive pas à retrouver l'info :?
je pense que tu parles de FOUND :
SELECT * FROM matable where id=111;
IF FOUND THEN
...
END IF;