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

Asi es mi querido seyko, los datos deben quedar igual que en la tabla origen, ya he modificado la funcion, por recomendacion en otro foro, y ha quedado asi:

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

BEGIN


IF TG_OP='INSERT' THEN
TARJETA_CREDITO_VALIDA=CAST(NEW.TARJETA_CREDITO_VA LIDA AS VARCHAR);
PREFERIDA=CAST(NEW.PREFERIDA AS VARCHAR);
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||' ,'||NEW.TARJETA_CREDITO_VALIDA||','||NEW.NUMERO_TA RJETA||','||NEW.EXPEDIDA||','||NEW.EXPIRA||',
'||NEW.ANTIGUEDAD||','||NEW.ID_TIPO_TARJETA||','|| NEW.PREFERIDA||','||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';



Pero me sigue saliendo un error que dice lo siguiente:

cannot cast type boolean to character varying

y de igual manera si pongo los campos como caracter y los paso como boolean.

Cualquier idea es bien recibida.

Gracias!!!