0
我有一個要求,每當數據插入到表中但是我碰到「錯誤ORA-04091:表測試時,通過插入後觸發器來調用存儲過程。 EMP變異,觸發/功能可能看不到它「。我明白這個錯誤背後的原因,但我怎樣才能通過複合觸發器克服這一點,而不會影響程序?從插入後觸發存儲過程引發的變異表錯誤
create TABLE emp(
id NUMBER(4),
emp_name VARCHAR2(30),
dept_name VARCHAR2(10));
create or replace PROCEDURE emp_count(dept_name_v emp.dept_name%TYPE) as
DECLARE
dept_emp_count NUMBER(4) := 0;
BEGIN
SELECT count(*) INTO dept_emp_count FROM emp WHERE dept_name = dept_name_v;
UPDATE dept_stat SET d_emp_count = dept_emp_count WHERE dept_name = dept_name_v;
END;
create or replace TRIGGER dept
AFTER INSERT ON emp
FOR EACH ROW
BEGIN
emp_count(:NEW.dept_name);
END;
您不在生產系統中使用'DBMS_OUTPUT'。那麼爲什麼你需要什麼都不做的程序呢? – 2014-12-07 10:49:18
調整程序來回答你的問題。鑑於情景是一個更容易理解的標本。 – 2014-12-07 11:45:43