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

Responder a