Oracle
 sql >> Baza danych >  >> RDS >> Oracle

PLS-00049 ZŁA ZMIENNA WIĄZANIA

Odnosisz się do wiązania zmiennych za pomocą 'A' na początku i bez podkreślenia, jak :OLD.AWitnessID , ale Twoja kolumna tabeli to po prostu WITNESS_ID . Więc nie pasują i generują ten błąd. Nie masz nawet WITNESS_TYPE kolumna.

Następnie w swoim insert oświadczenia masz błędne nazwy kolumn w tabeli audytu. Ustawiasz również zmienną na Update ale sprawdź, czy UPDATE - pamiętaj, że w przypadku wartości ciągu w porównaniu rozróżniana jest wielkość liter.

To kompiluje się z twoim schematem:

CREATE OR REPLACE TRIGGER 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 (AUD_AWitnessID, AUD_AWitnessType, AUDIT_USER,
      AUDIT_DATE, AUDIT_ACTION)
    VALUES (:OLD.Witness_ID, :OLD.FK1_WITNESS_TYPE_ID, UPPER(v('APP USER')),
      SYSDATE, v_trigger_task);
  ELSE    
    INSERT INTO PLAUDWIT (AUD_AWitnessID, AUD_AWitnessType, AUDIT_USER,
      AUDIT_DATE, AUDIT_ACTION)
    VALUES (:NEW.Witness_ID, :NEW.FK1_WITNESS_TYPE_ID, UPPER(v('APP USER')),
      SYSDATE, v_trigger_task);
  END IF;
END TRG_PLAUDWIT;
/

SQL Fiddle nie pokazuje żadnych błędów kompilacji .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Problemy z przełączaniem projektu .NET z niezarządzanych do zarządzanych zestawów ODP.NET

  2. Zainstaluj Oracle SQL Developer 19.1 w systemie Mac OS z JDK 8

  3. Jak poprawnie wyeksportować wyniki instrukcji select do pliku Csv za pomocą bufora w programie Oracle sql developer

  4. ... gdzie liczba (kolumna)> 1

  5. Jak wartości NULL wpływają na wydajność przeszukiwania bazy danych?