no way to compare when less than two revisions
Différences
Ci-dessous, les différences entre deux révisions de la page.
— | support:trucs_et_astuces:recuperer_le_resultat_d_une_requete_executee_dans_une_procedure_stockee [2008/10/15 16:58] (Version actuelle) – créée ioguix | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Récupérer le résultat d'une requête exécutée dans une procédure stockée ====== | ||
+ | En php on peut utiliser directement une requête pour obtenir un recordset. | ||
+ | |||
+ | Cependant si l'on veux récupérer un recordset via une procédure stockée -- pour appliquer des traitements sur des paramètres avant d' | ||
+ | |||
+ | L' | ||
+ | |||
+ | <code sql> | ||
+ | |||
+ | RETURNS setof integer AS | ||
+ | |||
+ | $BODY$ | ||
+ | |||
+ | DECLARE | ||
+ | |||
+ | -- On crée une variable de type record , on peut aussi suivant le besoin créer une variable de type %ROWTYPE | ||
+ | |||
+ | | ||
+ | |||
+ | BEGIN | ||
+ | |||
+ | FOR myrecord in SELECT mon_pk FROM ma_table loop | ||
+ | myset:= myrecord.mon_pk; | ||
+ | RETURN NEXT; | ||
+ | END LOOP; | ||
+ | RETURN; | ||
+ | END; | ||
+ | $BODY$ | ||
+ | LANGUAGE ' | ||
+ | |||
+ | ALTER FUNCTION ma_fonction(out myset demande.demande_pk%TYPE) OWNER TO mon_user;</ | ||
+ | |||
+ | Pour récupérer l' | ||
+ | |||
+ | <code sql> | ||
+ | |||
+ | Les mots importants sont : | ||
+ | * setof | ||
+ | * record | ||
+ | * %TYPE et %ROWTYPE | ||
+ | * for...loop | ||
+ | * return next | ||
+ | |||
+ | -- \\ | ||
+ | loquace le 07/06/2007 |