大家好,现在我想在我建立的触发器能够不同的表空间两个表之间工作
比如我在A表空间的test表上建立一个触发器 当test表插入一条数据的时候
我把A表刚刚插入的数据写入到B表空间的st表
我写了A的test表写了个触发器 代码如下:
create or replace trigger TRI_BJTU_TEST
  before insert or update on bjtulos.md_real
  for each row
declare
  -- local variables here
begin
  insert into B.st (id,name,now,los) values(:new.id,:new.name,:new.time,:new.los);
end TRI_BJTU_TEST;
现在执行显示错误信息如下:
Compilation errors for TRIGGER B.TRI_BJTU_TESTError: PL/SQL: ORA-00942: 表或视图不存在
Line: 7
Text: insert into aoyun.st (road_id,road_name,road_now,los) values(:new.id,:new.name,:new.time,:new.speed);Error: PL/SQL: SQL Statement ignored
Line: 7
Text: insert into aoyun.st (road_id,road_name,road_now,los) values(:new.id,:new.name,:new.time,:new.speed);

解决方案 »

  1.   

    create or replace trigger TRI_BJTU_TEST 
      before insert or update on bjtulos.md_real 
      for each row 
    declare 
      -- local variables here 
    begin 
      insert into B.st (id,name,now,los) values(:new.id,:new.name,:new.time,:new.los); 
    end TRI_BJTU_TEST; 
     before insert or update on bjtulos.md_real  把before改成after
      

  2.   

    lz你说的不是表空间吧,应该是schema
    你检查一下权限...
      

  3.   

    改成after了还能获得刚刚插入的那条数据吗?
    而且他不是报的这个错误呀!
      

  4.   

    跟表空间没关系!用户B授权给bjtulos,或者用dba用户去授权:
    grant insert on  B.st to bjtulos;
      

  5.   

    用户bjtulos在sqlplus里试一下插入B.st看是否可以