我試圖實現一個觸發器來搜索表上的值,並且,如果它檢查條件然後插入另一個表中。該觸發看起來是這樣的:在觸發器中循環
TRIGGER DISTANCIA
AFTER INSERT ON OBSERVACION FOR EACH ROW
DECLARE
importe_multa NUMBER (3,0);
BEGIN
FOR ROW IN (SELECT fecha_foto, hora_foto, pto_km_radar, sentido_radar, carretera_foto FROM OBSERVACION) LOOP
IF((ROW.fecha_foto = :NEW.fecha_foto)
AND
(ROW.carretera_foto= :NEW.carretera_foto)
AND
(ROW.pto_km_radar=:NEW.pto_km_radar)
AND
(ROW.sentido_radar=:NEW.sentido_radar))
THEN
IF(ROW.hora_foto<:NEW.hora_foto-3,6/86400)
THEN
importe_multa:= (:NEW.hora_foto - ROW.hora_foto - 3,6/86400)*100;
END IF;
IF(:NEW.hora_foto < ROW.hora_foto-3,6/86400)
THEN
importe_multa:= (ROW.hora_foto - :NEW.hora_foto - 3,6/86400)*100;
END IF;
IF(importe_multa IS NOT NULL)
THEN
--Introducimos el valor en el campo.
INSERT INTO SANCION(importe, fecha_foto, hora_foto, coche, tipo)
VALUES
(importe_multa, :NEW.fecha_foto, :NEW.hora_foto, :NEW.coche, '2');
END IF;
END IF;
END LOOP;
END;
當我試圖編譯的SQLDeveloper軟件引發此錯誤:
ORA-01008: Not all variables bound.
難道我引用在觀察右邊的變量?
的[所有行觸發條件(http://stackoverflow.com/questions/9455690/trigger-condition-in-all-rows)可能重複 – 2012-02-26 21:12:04