Différences
Ci-dessous, les différences entre deux révisions de la page.
| cookbook:recuperer_resultat_requete_executee_dans_procedure_stockee [2008/10/14 20:31] – créée ioguix | cookbook:recuperer_resultat_requete_executee_dans_procedure_stockee [2008/10/15 16:58] (Version actuelle) – effacé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 | ||