Gracias Juan por responder

Pero lo solucione temporalmente colocando la siguiente instrucción:

SELECT INTO factura_tabla *

Es decir cargando todo los campos, aunque no es la forma apropiada puesto que 
solo necesito 2 campos. Estaré haciendo la prueba con tu sugerencia tambien.

Saludos 
Grover Navia


--- El vie, 15/1/10, juan <[email protected]> escribió:

De: juan <[email protected]>
Asunto: Re: [pgsql-es-ayuda] Problema con TRIGGER
Para: "Grover Navia" <[email protected]>
CC: [email protected]
Fecha: viernes, 15 de enero, 2010 15:15

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



      

Responder a