PLS-00049 BAD BIND VARIABLE [закрыто]

Я пытаюсь настроить триггер так, чтобы при каждом обновлении таблицы PL_Witness он записывал это в таблицу PLAUDWIT, которая является таблицей аудита.

Однако каждый раз, когда я пытаюсь сделать этот триггер, я получаю неверную переменную связывания, и я получаю это на других триггерах аудита, которые я тоже пытаюсь сделать. В чем моя общая проблема?

Вся помощь приветствуется!

CREATE TABLE  "PL_WITNESS" 
   (    "WITNESS_ID" NUMBER(*,0) NOT NULL ENABLE, 
    "WITNESS_NAME" VARCHAR2(30) NOT NULL ENABLE, 
    "WITNESS_ADDRESS" VARCHAR2(100), 
    "FK1_WITNESS_TYPE_ID" NUMBER(*,0) NOT NULL ENABLE, 
     CONSTRAINT "PK_WITNESS" PRIMARY KEY ("WITNESS_ID") ENABLE
   )
/
ALTER TABLE  "PL_WITNESS" ADD CONSTRAINT "FK1_WITNESS_WTYPE" FOREIGN KEY         ("FK1_WITNESS_TYPE_ID")
      REFERENCES  "PL_WITNESS_TYPE" ("WITNESS_TYPE_ID") ENABLE
/

.

DROP TABLE PLAUDWIT
CREATE TABLE PLAUDWIT (
AUD_AWitnessID NUMBER,
AUD_AWitnessType NUMBER, 
AUDIT_USER varchar2(50),
AUDIT_DATE DATE,
AUDIT_ACTION varchar2(10));

, СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ТРИГГЕР TRG_PLAUDWIT

AFTER INSERT OR DELETE OR UPDATE ON PL_WITNESS
FOR EACH ROW
DECLARE
v_trigger_task varchar2(10);

BEGIN
IF UPDATING
  THEN
    v_trigger_task := 'Update';
ELSIF DELETING
THEN
v_trigger_task := 'DELETE';
ELSIF INSERTING
THEN
v_trigger_task := 'INSERT';
ELSE
v_trigger_task := NULL;
END IF;

IF v_trigger_task IN ('DELETE','UPDATE') THEN
INSERT INTO PLAUDWIT (AWitnessID, AWitnessType, AUDIT_USER, AUDIT_DATE, AUDIT_ACTION)
VALUES
(:OLD.AWitnessID, :OLD.AWitnessType, UPPER(v('APP USER')), SYSDATE, v_trigger_task);
ELSE

INSERT INTO PLAUDWIT (AWitnessID, AWitnessType, AUDIT_USER, AUDIT_DATE, AUDIT_ACTION)
VALUES
(:NEW.AWitnessID, :NEW.AWitnessType, UPPER(v('APP USER')), SYSDATE, v_trigger_task);
END IF;

END TRG_PLAUDWIT;

Ответы на вопрос(1)

Ваш ответ на вопрос