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
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 |