Re: How return a refcusor using functions????
От | frank@chagford.com (Frank Millman) |
---|---|
Тема | Re: How return a refcusor using functions???? |
Дата | |
Msg-id | 246a4e07.0305090224.3f04f396@posting.google.com обсуждение исходный текст |
Ответы |
Re: How return a refcusor using functions????
Re: How return a refcusor using functions???? |
Список | pgsql-general |
spraveen2001@yahoo.com (Praveen) wrote in message news:<98d8ec76.0305020423.951c12f@posting.google.com>... > Hi All, > > How return a ref cursor using function in postgress db. Please can anyone > send me sample function? It is very very urgent. > > Praveen Hi Praveen I know part of the answer, but I was about to post my own question in this regard, so I hope someone else reads this and can answer my question as well. Here are two alternative methods of defining a function to return a refcursor - 1) create or replace function v_ArMaster() returns refcursor as ' declare curs1 cursor for select AccNo, Name, Contact, Phone from ArMaster order by AccNo; begin open curs1; return curs1; end;' language 'plpgsql'; 2) create or replace function v_ArMaster() returns refcursor as ' declare curs1 refcursor; begin open curs1 for select AccNo, Name, Contact, Phone from ArMaster order by AccNo; return curs1; end;' language 'plpgsql'; According to my reading of the documentation, they should be equivalent. I tested them as follows - begin; select v_ArMaster(); fetch all from curs1; end; Version 1 works correctly. Version 2 fails with the following error - NOTICE: PerformPortalFetch: portal "curs1" not found. Please could someone advise on the correct syntax for version 2. I need this because I want to add some if...then...else statements to vary the building of the cursor, and you cannot do this inside the "declare" section of the function. Thanks in advance Frank Millman
В списке pgsql-general по дате отправления: