0

変化し続けるトリガーに問題があります。トリガーの目的は、ファイル パスが更新されたときに文字列の一部を変更することです。これが私がこれまでに持っているものです。うまくコンパイルされます。

CREATE OR REPLACE TRIGGER TAU_ATTACHMENTS
AFTER UPDATE
ON ATTACHMENTS
FOR EACH ROW
 BEGIN
  IF :new.PATH LIKE 'file://Y:%' THEN   
    UPDATE ATTACHMENTS SET PATH = REPLACE(:new.PATH, 'file://Y:','file://\\MPS7536');
  END IF;
END;
/

単一の行を更新するテストを行うと、通常の変更テーブル エラーが発生します。何かアドバイス?私は非常に感謝しています!

4

1 に答える 1

0

明らかに、トリガーの列の値を保存する前に変更したいと考えています。しかし代わりに、提供されたコードはテーブル全体を更新しようとしていattachmentsます。次のように、更新されているレコードの値を変更できます。

CREATE OR REPLACE TRIGGER TAU_ATTACHMENTS
BEFORE UPDATE
ON ATTACHMENTS
FOR EACH ROW
 BEGIN
  IF :new.PATH LIKE 'file://Y:%' THEN   
    :new.PATH = REPLACE(:new.PATH, 'file://Y:','file://\\MPS7536');
  END IF;
END;
/

BEFORE UPDATEこれはトリガーであることに注意してください。

于 2014-02-21T17:05:20.353 に答える