私はこのトリガーを持っています:
CREATE OR REPLACE TRIGGER trig_update_process_info
AFTER INSERT ON rocessstep FOR EACH ROW
DECLARE
audit_time TIMESTAMP(6);
found_flag NUMBER DEFAULT 0;
BEGIN
SELECT MAX(lastupdatetime) INTO audit_time
FROM processinfo
WHERE instance = :new.instance;
EXCEPTION
WHEN no_data_found THEN
found_flag := NULL;
IF found_flag IS NULL
THEN
INSERT INTO processinfo
VALUES (:new.instance, :new.step, :new.status, :new.iteration, :new.audittime);
ELSE
IF :new.audittime > audit_time
THEN
UPDATE processinfo
SET step = :new.step, lastupdatetime = :new.audittime, status = :new.status, iteration = :new.iteration
WHERE instance = :new.instance;
END IF;
END IF;
END;
しかし、それは機能していません。このトリガーの何が問題なのか教えていただけますか?
ターゲットテーブルは次のとおりです。
CREATE TABLE PROCESSINFO( インスタンス CHAR(36 バイト) NOT NULL、 STEP VARCHAR2(128バイト) NOT NULL, ステータス番号(*,0) NULL ではありません。 反復数(*,0) NULL ではありません。 LASTUPDATETIME TIMESTAMP(6) NOT NULL );
ありがとう