CREATE OR REPLACE FUNCTION find(co as integer)
  RETURNS refcursor AS
$BODY$
DECLARE
    data refcursor;
BEGIN
  open data for
    select campo1,campo2 from tutabla
      where campo3=co;
  return data; 
END:
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

Esto no funciona con el driver odbc, solo con oledb

Slds


----- Original Message ----- 
  From: Islanet 
  To: Sandro Martin Napán Villarreal 
  Cc: [email protected] 
  Sent: Tuesday, June 23, 2009 2:31 PM
  Subject: Re: [pgsql-es-ayuda] RETORNAR CURSOR EN DATAWINDOW


  Hola...
  Debes crear un tipo o utilizar un tipo existente (cada tabla creada por 
defecto es un tipo)
  Luego devuelves un SET OF tipo (del tipo creado)

  Un ejemplo de tipo:
  CREATE TYPE tipo1 AS
     (
     id bigint,
     codeorder bigint,
     officialname character varying);

  y la función
  CREATE OR REPLACE FUNCTION find_(co1a integer)
    RETURNS SETOF tipo1 AS
  $BODY$
  DECLARE
      _mitipo    tipo1;
  BEGIN

    --operaciones respectivas
          _mitipo.id:=1;
          _mitipo.codeorder :=1;
          _mitipo.officialname :='mi nombre';
          RETURN NEXT _mitipo;
  END;
  $BODY$
  LANGUAGE 'plpgsql' VOLATILE;

  La llamada queda asi: select * from find_(1);
  Y te devuelve un set de registros, de la misma forma que haces un select a 
una tabla.

  Saludos.-

  Islanet


  2009/6/23 Sandro Martin Napán Villarreal <[email protected]>

    Buenas tardes



    Sabe alguien como retornar un cursor en postgres desde una funcion que sera 
invocada desde un DW, no desde un script de pb 



    En Oracle se retorna un cursor , en Sybase y sql Server un simple select a 
la tabla y listo el dw se crea con esa estructura y parámetros , pero en 
postgres como hago lo mismo



    Sld 



    __________ Información de ESET NOD32 Antivirus, versión de la base de 
firmas de virus 4181 (20090623) __________

    ESET NOD32 Antivirus ha comprobado este mensaje.

    http://www.eset.com


    -- 
    Este mensaje ha sido analizado por MailScanner 
    en busca de virus y otros contenidos peligrosos, 
    y se considera que está limpio. 
    MailScanner agradece a transtec Computers por su apoyo. 

Responder a