sql >> データベース >  >> RDS >> Oracle

基本的なOracleトリガー監査テーブル

    エラーが発生した理由はわかりませんが、すべてを取り除いて基本からトリガーを再構築し、これを機能させました:

    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. Androidデバイス用の安全なデータベースを実装するためのベストプラクティス

    2. MySQLWorkbenchでデータベース図を作成する

    3. SQL Serverで(decimal、float、int)に変換できないフィールド値を判別する方法

    4. 生成された列とは何ですか?