возврат курсоров из функций PL/pgSQL

tony2001

TeaM PHPClub
возврат курсоров из функций PL/pgSQL

Господа, есть следующие непонятки:
прав ли я, предполагая, что курсор, который возвращается из функции, можно использовать только вот таким образом:
Код:
SELECT * FROM function_returning_cursor(..params..)
?

Или же есть более прямой способ их получения, типа:
Код:
pg_query("cursor = function_returning_cursor(..params..)");
/* тут каким-то образом получаем cursor */
а хотелось бы даже так:
Код:
pg_query("function_result = function_returning_cursor(..params.., &out_cursor)");
/* 
тут каким-то образом получаем cursor и в function_result - код возможной ошибки
*/
пока что-то я вижу из документации только 1-й вариант.
он единственный или я не дочитал до нужного места?
 

tony2001

TeaM PHPClub
не совсем то, о чем я говорил:
Код:
 BEGIN;
 SELECT reffunc('funccursor');
 FETCH ALL IN funccursor;
 COMMIT;
здесь я в PL/pgSQL буду получать курсор и там же его фетчить.

я же имел ввиду другое:
получить курсор в РНР и использовать его как параметр к pgsql_fetch_*.
или я опять недочитал?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: tony2001
не совсем то, о чем я говорил:
Код:
 BEGIN;
 SELECT reffunc('funccursor');
 FETCH ALL IN funccursor;
 COMMIT;
здесь я в PL/pgSQL буду получать курсор и там же его фетчить.
отчего же, можно и в PHP
PHP:
$res = pg_query($conn, 'FETCH ALL IN funccursor');
pg_fetch_array($res);
а отдельных функций для работы с курсорами нету.
 

tony2001

TeaM PHPClub
понял.
жаль, это немного не то, что я ожидал.
но и это сойдет.
 
Сверху