Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/05/2009, 09:48
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: como hacer este trigger????

r0xdrig0

hay un tipo de variable en pl/pgsql llamada record, que puede recoger el valor de las variables de una consulta para usarlas despues.

Como se usa?
Te mostraré un pequeño ejemplo de como hago uso del valor de cierto campo en la base de datos.

Código sql:
Ver original
  1. CREATE OR REPLACE FUNCTION datosbs(codigo CHARACTER VARYING, fechabs DATE)
  2.   RETURNS DOUBLE PRECISION AS
  3. $BODY$
  4. DECLARE
  5. regBS record;
  6. BS DOUBLE PRECISION;
  7. BEGIN
  8. SELECT INTO regBS qtotal FROM bsol WHERE iestacion = codigo AND fecbsol = fechaBS;
  9. BS := regBS.qtotal;
  10. RETURN BS;
  11. END;
  12. $BODY$
  13.   LANGUAGE 'plpgsql' VOLATILE;
  14. ALTER FUNCTION datosbs(codigo CHARACTER VARYING, fechabs DATE) OWNER TO postgres;

En regBS se almacena el valor de qtotal que es un campo de la tabla bsol.
Es muy importante la clausula INTO.
Despues la retorno como variable.

Espero te sirva.

Cuentanos como te va.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming