From: | Francois Suter <dba(at)paragraf(dot)ch> |
---|---|
To: | Pgsql Generale Fr <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | Fwd: PL-PGSQL : Procédure stockée simple |
Date: | 2005-07-08 07:21:45 |
Message-ID: | a5f45d4196b3d37c2575dfdc5c66b0a7@paragraf.ch |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Je transmets un message envoyé à pgsql-fr-generale-owner(at)postgresql(dot)org
au lieu de pgsql-fr-generale(at)postgresql(dot)org (merci de faire attention
la prochaine fois).
François
Begin forwarded message:
> From: "Jerome VILLAFRUELA" <Jerome(dot)VILLAFRUELA(at)yoni(dot)fr>
> Date: July 7, 2005 18:28:17 CEST
> To: <pgsql-fr-generale-owner(at)postgresql(dot)org>
> Subject: RE: PL-PGSQL : Procédure stockée simple
>
> Anthony Stéphan écrivait le jeudi 7 juillet 2005 17:34 :
>
> [...]
>> Je cherche à faire quelque chose de très simple : récupérer des
>> enregistrements
>> dans une table avec un SELECT (dans ce cas de figure, une seule
>> colonne
>> m'intéresse mais bon ce sera pas toujours le cas) et les retourner
>> vers PHP.
>> Evidemment je peux faire ça sans procédure stockée mais bon vu que
>> j'ai
>> commencé à en faire quelques unes, j'aime autant poursuivre dans
>> cette voie
>> et tout séparer convenablement.
>>
>> Je suppose qu'il faut dans la procédure : déclarer un tableau, faire
>> la
>> requêtre souhaitée, récupérer les résultats, les mettre dans le
>> tableau et
>> retourner ce tableau.
>
> Exemple de fonction renvoyant un ensemble de lignes :
> (tiré de
> http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/docs/tsearch2-
> guide.html)
>
> Il faut d'abord créer un type décrivant les informations retournées
> par la fonction :
> =# CREATE TYPE finddoc_t AS (id INTEGER, headline TEXT, rank REAL)
>
> Utiliser le mot clé SETOF pour indiquer que la fonction va renvoyer un
> ensemble de lignes :
> =# CREATE FUNCTION finddoc(text) RETURNS SETOF finddoc_t LANGUAGE sql
> AS '
> SELECT id, headline(doc, q), rank(vector, q)
> FROM docs, to_tsquery($1) AS q
> WHERE vector @@ q ORDER BY rank(vector, q) DESC'
>
>
> La fonction s'utilise ensuite dans un ordre select :
> SELECT * FROM finddoc('passage|crawl')
> ce qui ne pose pas de problème en PhP.
>
> --
> Jérôme Villafruela
> RFI Informatique
> ZI Percevalière - 7410
> 38174 SEYSSINET-PARISET
> Tél: 04 76 84 25 84
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Jerome VILLAFRUELA | 2005-07-08 07:34:23 | RE: PL-PGSQL : Procédure stockée simple |
Previous Message | Masse Jacques | 2005-07-07 16:16:33 | RE: [pgsql-fr-generale] PL-PGSQL : Procédure stockée simple |