ejecutar funcion de retorno de cursor dentro de otra funcion

From: Felipe Amezquita <felmarla(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: ejecutar funcion de retorno de cursor dentro de otra funcion
Date: 2006-02-03 13:33:08
Message-ID: bf4cfe570602030533p28896085h@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Bueno amigos la cuestion es la siguiente re sulta que tengo algunas
funciones que retornan un cursor y a su vez tengo otras funciones que
retornan un numeric pero estan llamando la funcion del retorno del
cursor,como puedo ejecutar esta funcion del cursor dentro de la otra para
hacer alguna operacion con la ejecucion del cursor.
CREATE OR REPLACE FUNCTION obtener_consecutivo_factura("varchar", refcursor)
RETURNS refcursor AS
$BODY$
DECLARE
existePref Numeric;
consecFac numeric;

BEGIN

existePref := existe_prefijo_consecutivo(in_pref_prefijo);
if (existePref = 0) then
raise exception 'El prefijo indicado no tiene consecutivo
automatico.';
else
select prefcon_numero INTO consecFac from prefijo_consecutivo where
pref_prefijo = in_pref_prefijo for update;
consecFac:= consecFac + 1;

update prefijo_consecutivo set prefcon_numero = consecFac where
pref_prefijo = in_pref_prefijo;
open $2 for select consecFac as fac_numero;
end if;
return 2;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

Y LA USO DENTRO DE ESTA aparentemente funciona la primera vez pero en
relidad no es asi.

CREATE OR REPLACE FUNCTION insertar_cuotaafi_prg("numeric", date, "numeric",
"numeric", "varchar")
RETURNS "numeric" AS
$BODY$
DECLARE
cursorConsecfactura refcursor;
consecFac factura.fac_numero%type;
tipoFactura tipo.tip_codigo%type;
codUSuario Numeric;
xx refcursor;
existePref Numeric;
BEGIN
cursorConsecfactura:=obtener_consecutivo_factura('CUA','ref');
xx:=fetch all cursorConsecfactura;
LOOP
-- FETCH xx into consecFac;
exit;
END LOOP;
close cursorConsecFactura;
tipoFactura := get_codigo_tipo('Talonario','Facturas');
codUsuario := get_codigo_usuario(in_usuario);

insert into factura values('CUA', consecFac, in_oco_codigo_venta,
in_prg_fecha_solicitud,current_date,
in_valor_cuotaAfi, in_valor_cuotaAfi, 0,
in_valor_cuotaAfi, 0, null,
in_valor_cuotaAfi, tipoFactura, 'Ac',
null, codUsuario, null);

insert into factura_programa values('CUA', consecFac,
in_prg_codigo);
return consecFac;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
--
Ing Sistemas y Telecomunicaciones
Luis Felipe Lopez Amezquita
3008217523 - 3162589699

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Felipe Amezquita 2006-02-03 13:40:25 convertir un tipo de dato..
Previous Message Edwin Quijada 2006-02-03 13:30:43 Re: [OFF-TOPIC] Licenciamiento de Mysql