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