Grover Navia escribió:
CREATE FUNCTION almacenes.registrar_venta_kardex() RETURNS OPAQUE AS'
DECLARE
factura_tabla public.facturacion%ROWTYPE;
BEGIN
SELECT INTO factura_tabla nro_operacion, fecha
FROM public.facturacion
WHERE nro_operacion = New.nro_operacion;
IF FOUND THEN
INSERT INTO almacenes.kardex (cod_prod, fecha, nro_cta_salida,
cant_salida, nro_operacion_factura)
VALUES (New.cod_prod, factura_tabla.fecha, New.cod_cta, New.cantidad,
New.nro_operacion);
END IF;
RETURN NEW;
END;
'LANGUAGE 'plpgsql';
Noto que de la tabla facturación estás utilizando únicamente el campo
"fecha", por ello supongo que estas utilizando mal la variable.
Según lo poco que conozco del %ROWTYPE, sé que debes hacerlo primero
enumerando los campos y luego hacer el "INTO factura_tabla", ásí:
SELECT nro_operacion, fecha INTO factura_tabla FROM public.facturacion
Ahora bien, puedo proponerte dos cosas, como solamente quieres saber la
fecha de la tabla facturación, la primera alternativa sería utilizar
solamente una variable tipo "date" y ahí guardar la fecha y por último
cambiar el tipo de dato de la variable factura_tabla por el tipo RECORD.
--
Cordialmente,
Juan Ramírez
El Salvador
--
TIP 8: explain analyze es tu amigo