日期:2014-05-17  浏览次数:20661 次

触发器求指教
我自己写了个简单的触发器,但是一直提示  
错误(9,13): PL/SQL: ORA-00942: 表或视图不存在
 错误(9,1): PL/SQL: SQL Statement ignored




create or replace TRIGGER before_socre_update
BEFORE update OF score
on bcc
for EACH row when (new.score<70)
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE('score = ' || :new.score);

insert into badscore(id,newscore) VALUES (:old.id,:new.score);

END before_socre_update;

本人有点小白,望详解
------解决方案--------------------
LZ使用哪个用户写的触发器,表如果不属于这个用户,需要确定访问权限还有在表前添加schema。
------解决方案--------------------
我在同一个用户下创建了表和触发器,然后执行,没有任何问题。
你上面出现的问题可能是你没有访问这个表的权限。
------解决方案--------------------
LZ,你试试加上schema名字呢?看看trigger是否正常运行。
------解决方案--------------------
schema就是用户名。
------解决方案--------------------
看不出,下面是我之前的例子:
create or replace trigger tri_test1
  after insert or update or delete on emp 
  for each row --是否需要针对每条操作的数量做关注;
begin
  if  inserting then
  insert into log values (user,'EMP',sysdate,'Insert');
  elsif updating then
  insert into log values (user,'EMP',sysdate,'Update');
  else
  insert into log values (user,'EMP',sysdate,'Delete');
  end if;
end tri_test1;