Funcion Trigger

From: Desarrollo Escuintla <desarrollo(dot)escuintla(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Funcion Trigger
Date: 2010-05-04 14:54:00
Message-ID: q2ia6e132361005040754j9413c849x6e072fc84bcd331f@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola buen día,

tengo el siguiente trigger:

CREATE TRIGGER tri_actualizar_asig
AFTER INSERT
ON tbl_08
FOR EACH ROW
EXECUTE PROCEDURE *tri_actualiza_asignacion()*;

y aqui el procedimiento:

CREATE OR REPLACE FUNCTION *tri_actualiza_asignacion()*
RETURNS trigger AS
$BODY$
DECLARE resto numeric;
BEGIN
* resto=sp_traesaldo(NEW.tbl_07_asignacion);* //aqui me salta
el error
IF (resto=0) THEN
UPDATE tbl_07 SET tbl_07_estado='PAGADO' WHERE
tbl_07_asignacion=NEW.tbl_07_asignacion;
END IF;
RETURN NEW;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;

dentro del cual llamo a la siguiente funcion "sp_traesaldo(integer)":
(que me devuelve el saldo restante entre el precio de venta y los abonos
realizados y que recibe
como parametro el número de asignacion de la venta)

CREATE OR REPLACE FUNCTION sp_traesaldo(integer)
RETURNS numeric AS
$BODY$
SELECT
(tbl_03.tbl_03_pventa - SUM(tbl_10.tbl_10_cant)) AS resto
FROM tbl_10 LEFT JOIN tbl_08
ON tbl_10.tbl_08_no=tbl_08.tbl_08_no
LEFT JOIN tbl_07 ON
tbl_07.tbl_07_asignacion=tbl_08.tbl_07_asignacion
LEFT JOIN tbl_03 ON
tbl_07.tbl_03_placa=tbl_03.tbl_03_placa
LEFT JOIN tbl_01 ON
tbl_07.tbl_01_codigo=tbl_01.tbl_01_codigo
WHERE tbl_10.tbl_08_no
IN (SELECT tbl_08.tbl_08_no FROM tbl_08 WHERE
tbl_08.tbl_07_asignacion=$1)
GROUP BY tbl_03.tbl_03_pventa,tbl_07.tbl_07_asignacion,
tbl_07.tbl_07_fecha,tbl_01.tbl_01_codigo;
$BODY$
LANGUAGE 'sql' VOLATILE
COST 100;
--

pero al insertar un registro en la tabla "tbl_08" donde se debe activar el
trigger
despues de la inserción, me resulta el siguiente error:

ERROR: no existe la función sp_traesaldo(numeric)
LINE 1: SELECT sp_traesaldo( $1 )
^
HINT: Ninguna función coincide en el nombre y tipos de argumentos. Puede
desear agregar conversión explícita de tipos.
QUERY: SELECT sp_traesaldo( $1 )
CONTEXT: PL/pgSQL function "tri_actualiza_asignacion" line 3 at asignación

Saludos

_________________
José de Paz
Escuintla, Guatemala
Tel. (502)-56041676

http://desarrolloescuintla.wordpress.com

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fabián Eduardo Núñez Salcedo 2010-05-04 15:11:47 Re: Problema con la barra de Menu
Previous Message Edwin Quijada 2010-05-04 14:46:51 RE: Problema con ODBC