Sie führen einen "Before Insert"-Trigger aus. Bei einem solchen Trigger fügen Sie nicht in dieselbe Tabelle ein – andernfalls können Sie eine Endlosschleife erhalten. Weisen Sie einfach der Variablen den Wert zu:
CREATE OR REPLACE TRIGGER trig_deptno2
BEFORE INSERT ON dept2
FOR EACH ROW
DECLARE v_deptno NUMBER(2) ;
BEGIN
SELECT coalesce(MAX(deptno) + 1, 1) INTO :new.deptno
FROM dept2 ;
END trig_deptno2 ;
Wenn der Trigger fertig ist, fügt er die richtigen Werte aus new
ein Variable.
Lassen Sie mich nur sagen, dass Sequenzen aus einem bestimmten Grund existieren und Sie sie für diesen Zweck verwenden sollten. Der Versuch, ihre Funktionalität nachzuahmen, führt wahrscheinlich zu Fehlern.