El sáb, 15-11-2008 a las 04:44 -0600, miguel escribió: > Tengo el siguiente disparador > > CREATE OR REPLACE FUNCTION movement_trg() RETURNS "trigger" AS $$ > DECLARE > v_DateNull TIMESTAMP := TO_DATE('01-01-1900', 'DD-MM-YYYY'); > BEGIN > IF > ( > OLD.PROCESSED = 'Y' AND > (/*Inicio Condicion 2*/ > (COALESCE(OLD.MOVEMENTDATE, v_DateNull) <> > COALESCE(NEW.MOVEMENTDATE, v_DateNull)) > OR > (COALESCE(OLD.AD_ORGTRX_ID, 0) <> > COALESCE(NEW.AD_ORGTRX_ID, 0)) > OR > (COALESCE(OLD.DOCUMENTNO, '.') <> > COALESCE(NEW.DOCUMENTNO, '.')) > OR > (COALESCE(OLD.AD_ORG_ID, 0) <> COALESCE(NEW.AD_ORG_ID, > 0)) > OR > (COALESCE(OLD.AD_CLIENT_ID, 0) <> > COALESCE(NEW.AD_CLIENT_ID, 0)) > )/*Fin Condicion 2*/ > ) > THEN > RAISE EXCEPTION '%', 'Document processed/posted' ; --OBTG:-20501-- > END IF; > IF (TG_OP = 'DELETE') THEN RETURN OLD; ELSE RETURN NEW; END IF; > END; > $$ LANGUAGE 'plpgsql' VOLATILE; > > > Qué al ejecutarlo me sale el error: > > ERROR: record "new" is not assigned yet > DETAIL: The tuple structure of a not-yet-assigned record is > indeterminate. > CONTEXT: PL/pgSQL function "movement_trg" line 25 at if > > > ********** Error ********** > > ERROR: record "new" is not assigned yet > SQL state: 55000 > Detail: The tuple structure of a not-yet-assigned record is > indeterminate. > Context: PL/pgSQL function "movement_trg" line 25 at if > > > Alguien podría darme una ayudadita?
Disculpen olvide decir que esto pasa cuando manda ejecutar un DELETE dentro de la tabla y el resto de la definición es: CREATE TRIGGER movement_trg AFTER UPDATE OR DELETE ON m_movement FOR EACH ROW EXECUTE PROCEDURE movement_trg(); > > -- > TIP 6: Has buscado en los archivos de nuestra lista de correo? > http://archives.postgresql.org/pgsql-es-ayuda -- TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podr� leerlo