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

Responder a