Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/05/2007, 09:04
montsezam
 
Fecha de Ingreso: enero-2007
Mensajes: 10
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Error en una funcion utilizando boolean

Hola Seyko, tienes mucha razon lei el error pero bueno...te pongo el codigo de la funcion y a ver si me puedes ayudar a ver que puedo hacerle.

CREATE OR REPLACE FUNCTION SAC_TARJETA_CREDITO() RETURNS TRIGGER AS
$BODY$
DECLARE

//TARJETA_CREDITO_VALIDA es BOOLEAN;
//PREFERIDA es BOOLEAN;

BEGIN


IF TG_OP='INSERT' THEN
TARJETA_CREDITO_VALIDA=NEW.TARJETA_CREDITO_VALIDA;
PREFERIDA=NEW.PREFERIDA;
PERFORM dblink_exec('hostaddr=192.168.1.102 port=5432 dbname=BD_SIFAR user=postgres password=admin',
'INSERT INTO SAC_TARJETA_CREDITO values ('||NEW.ID_TARJETA_CREDITO||','||NEW.ID_PERSONA||' ,'||CAST(TARJETA_CREDITO_VALIDA AS BOOLEAN)||','||NEW.NUMERO_TARJETA||','||NEW.EXPEDI DA||','||NEW.EXPIRA||',
'||NEW.ANTIGUEDAD||','||NEW.ID_TIPO_TARJETA||','|| CAST(PREFERIDA AS BOOLEAN)||','||NEW.NUMERO_SEGURIDAD||');');
RETURN NEW;


ELSEIF TG_OP='DELETE' THEN

PERFORM dblink_exec('hostaddr=192.168.1.102 port=5432 dbname=BD_SIFAR user=postgres password=admin', 'DELETE FROM SAC_TARJETA_CREDITO WHERE '||OLD.ID_TARJETA_CREDITO||' = SAC_TARJETA_CREDITO.ID_TARJETA_CREDITO;');
RETURN OLD;


ELSEIF TG_OP='UPDATE' THEN

PERFORM dblink_exec('hostaddr=192.168.1.102 port=5432 dbname=BD_SIFAR user=postgres password=admin',
'UPDATE SAC_TARJETA_CREDITO SET ID_TARJETA_CREDITO= '||NEW.ID_TARJETA_CREDITO||' , ID_PERSONA= '||NEW.ID_PERSONA||',
TARJETA_CREDITO_VALIDA ='||NEW.TARJETA_CREDITO_VALIDA||', NUMERO_TARJETA ='||NEW.NUMERO_TARJETA||', EXPEDIDA = '||NEW.EXPEDIDA||', EXPIRA = '||NEW.EXPIRA||', ANTIGUEDAD ='||NEW.ANTIGUEDAD||'
, ID_TIPO_TARJETA = '||ID_TIPO_TARJETA||' , PREFERIDA = '||NEW.PREFERIDA||' , NUMERO_SEGURIDAD = ' ||NEW.NUMERO_SEGURIDAD||' WHERE '||OLD.ID_TARJETA_CREDITO||'=SAC_TARJETA_CREDITO.I D_TARJETA_CREDITO);');
RETURN NEW;
END IF;
END;
$BODY$
LANGUAGE 'plpgsql';