2010/6/24 Dianna Florencia Romero Berrospi <diannys_1...@hotmail.com>:
> Hola gentita, yo de nuevo, tengo la siguiente función, a pesar de lo que
> revisar n veces no encuentro el error, cuando ejecuto la siguiente función
> me da como resultado "unnamed portal", por favor alguien puede decirme que
> esta mal, gracias.
> Ah!!! y   Gracias a Emmanuel Calvo, por responder a mi anterior pregunta.
>
>
> Create or Replace function spPruebaPrueba
> (
> docu varchar
> )
> Returns SetOf RefCursor As
> $Body$
> Declare Lista RefCursor;
> Begin
> Open Lista For
> With Recursive
> Referencia (DocId, DocEnc, RefDoc, RefEnc) As
> (
> Select T0.DocId,
> T1.DocEnc,
> T0.ReFDoc,
> T2.DocEnc
> From DocumentoReferencia T0
> Inner Join Documento T1 On (T0.DocId = T1.DocId)
> Inner Join Documento T2 On (T0.RefDoc = T2.DocId)
> Where T0.RefDoc ilike 'E-02993'
> Union All
> Select T0.DocId,
> T2.DocEnc,
> T0.RefDoc,
> T3.DocEnc
> From DocumentoReferencia T0
> Inner Join Referencia T1 On (T0.RefDoc  = T1.docid)
> Inner Join Documento  T2 On (T0.DocId  = T2.DocId)
> Inner Join Documento  T3 On (T0.RefDoc = T3.DocId)
> )
> Select DocId, DocEnc, RefDoc, RefEnc from referencia;
> Return Next Lista;
> Return;
> End;
> $Body$
> LANGUAGE 'plpgsql' VOLATILE;

Estas retornando un set de refcursor? Creo que no es lo que quieres
(según lo que estoy
observando de la función). refcursor es una referencia a un cursor.

Para que querés recorrer la consulta con un for? Para eso directamente
(si aún quieres
encapsularlo en una función), incrusta el SQL en una función LANGUAGE
'sql' y llámalo:

SELECT * FROM spPruebaPrueba('valor');

Lo que si, tendrás que crear una vista o un tipo para el dato que
retorna (y utilizar RETURNS
SETOF prueba_return):

CREATE VIEW prueba_return AS Select DocId, DocEnc, RefDoc, RefEnc from
referencia;

Saludos


-- 
              Emanuel Calvo Franco
        www.emanuelcalvofranco.com.ar
     Join: http://www.thevenusproject.com/
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a