Обсуждение: Retriving cursor from pgplsql function

Поиск
Список
Период
Сортировка

Retriving cursor from pgplsql function

От
"Fernando Papa"
Дата:
Hi everibody.
I'm new on postgres stuffs... I'm trying to create several functions to
encapsulate "bussines procedures"... actually I need to return a cursor.


This is the "head" of function:
--------------
create or replace function match(refcursor,int8) returns refcursor
as '
DECLARE
   vid ALIAS FOR $2;
   vcursor ALIAS FOR $1;
BEGIN
(...)
return vcursor;
(...)
--------------

And this is php call:
--------------
   $conn = pg_pconnect ($conn_string);
   $qry = "BEGIN; SELECT matche('cursorsalida',$identificador); fetch
all in cursorsalida; ";
    $result = pg_query ($conn, $qry);
    $num = pg_num_rows($result);
    for ($i=0; $i < $num; $i++) {
      $r = pg_fetch_row($result, $i);
(...)
---------------


The problem with this is than I need to pass the cursor to the
function... when I try to create a function who doesn't receive a
"refcursor" (only "return" the refcursor), I can't use the cursor!
I think I'm not doing this in the best way... actually this works fine,
but I don't want to pass by  parameter a cursor...

Thanks in advance!

--
Fernando O. Papa