Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 14/02/2012 18:29:29
- mourad
- Membre
script pour afficher résultat d'une fonction
Bonjour tout le monde,
j'ai crée la fonction suivante :
CREATE OR REPLACE FUNCTION "mabase"."get_the_results" (varchar) RETURNS "pg_catalog"."refcursor" AS
$body$
DECLARE
CodeId ALIAS FOR $1;
curRet REFCURSOR;
SQL_QUERY varchar;
BEGIN
SQL_QUERY := 'SELECT sp_code_sq_pk ,
sp_gsp_code_fk ,
A.CDF_NOM AS STATUT_LABO ,
B.CDF_NOM AS SP_LISTE ,
sp_catc_code_fk ,
sp_ceph_code_fk ,
sp_cge_code_fk ,
sp_pr_code_fk ,
sp_type_spe ,
sp_gref_fk ,
sp_nom ,
sp_nomcomp ,
sp_ph ,
sp_cipucd ,
sp_datecr ,
sp_datemj ,
sp_nl ,
sp_aphp ,
sp_origine_gene ,
sp_nomlong ,
SP_CIPUCD13 ,
SP_MONO_VIRTUELLE AS MONO_VIR
FROM theriaque.SP_SPECIALITE,
theriaque.CDF_CODIF A,
theriaque.CDF_CODIF B
WHERE SP_CDF_SLAB_CODE_FK = A.CDF_CODE_PK
AND SP_CDF_LI_CODE_FK = B.CDF_CODE_PK
AND A.CDF_NUMERO_PK = ''15''
AND B.CDF_NUMERO_PK = ''08''
AND SP_CODE_SQ_PK = CAST('||CodeId||' AS NUMERIC)';
open curRet FOR execute SQL_QUERY;
RETURN curRet;
end;
et je désire écrire un script qui affiche les résultats retournés par cette fonction. J'ai essayé avec ces lignes
declare resCur CURSOR for select * from get_the_specialite('13183',1,0);
FETECH ALL in resCur;
mais aucun résultat n'est affiché. Si j'exécute la 1ère ligne seulement j'ai comme résultat le nom de la procédure comme libellé et <unnamed dropal X> comme valeur.
Est ce que quelqu'un pourrait m'éclaircir ce problème et m'aider à le résoudre.
Merci d'avance pour votre aide.
Cordialement.
Hors ligne
#2 14/02/2012 19:33:44
- rjuju
- Administrateur
Re : script pour afficher résultat d'une fonction
Déjà répondu dans un autre message, mais à tout hasard voila la doc postgresql au sujet du renvoi de refcursor :
http://docs.postgresql.fr/9.1/plpgsql-c … #id5673972
Cette solution impose d'être en transaction, donc un BEGIN explicite.
Dernière modification par rjuju (14/02/2012 19:37:46)
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1