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

Podstawowa tabela audytu wyzwalaczy Oracle

Nie mam pojęcia, dlaczego pojawia się błąd, ale rozebrałem wszystko i przebudowałem wyzwalacz od podstaw i udało mi się to:

CREATE OR REPLACE TRIGGER product_audit
  BEFORE INSERT OR DELETE OR UPDATE ON DD_Products
  FOR EACH ROW
DECLARE
  VAR_ChangeType CHAR(1);
BEGIN
  IF INSERTING   THEN VAR_ChangeType := 'I';
  ELSIF UPDATING THEN VAR_ChangeType := 'U';
  ELSE                VAR_ChangeType := 'D';
  END IF;
  INSERT INTO DD_PriceChange
  (
    PriceChangeNo,
    Change_Type,
    ChangeBy,
    ChangeDate, 
    NewProductPrice,
    NewRetailPrice, 
    OldProductPrice,
    OldRetailPrice
  ) VALUES (
    ProductHistory_SEQ.NEXTVAL,
    VAR_ChangeType,
    USER,
    SYSDATE,
    :NEW.ProductPrice,
    :NEW.RetailPrice,
    :OLD.ProductPrice,
    :OLD.RetailPrice
  );
END product_audit;
/

SQLFIDDLE




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EF 4, jak dodać częściowe klasy

  2. Opcje formatowania SQLcl (Oracle)

  3. Wykrywanie cykli z rekurencyjnym faktoringiem podzapytań

  4. oracle sql:zaktualizuj, jeśli istnieje, wstawiaj jeszcze

  5. Jak uzyskać typ danych kolumny w Oracle z PL-SQL z niskimi uprawnieniami?