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

不同用户触发器相关
现在情况是这样的:

一个数据库有多个用户
在用户A下创建了表TABLE,然后创建了表的同义词TABLE,并授权给另一个用户。A用户下还创建了一个sequence。

用户B下创建了触发器TRIGGER,该触发器用到了A用户下的sequence。然后在B用户下插入数据时报trigger is invalid 的错误。

A用户只有创建表和sequence的权限,用户B只有创建触发器的权限。


-- Create sequence 
create sequence PROGRESS_ID_SEQUENCE
minvalue 1
maxvalue 99999999
start with 1
increment by 1
cache 20;


create or replace trigger lckz_progress_id_trigger
          before insert on issscandata.LCKZ_PROGRESS     /*触发条件:当向表dectuser执行插入操作时触发此触发器*/
          for each row   /*对每一行都检测是否触发*/   
begin      /*触发器开始*/
   select issscandata.progress_id_sequence.nextval into :new.progress_id from dual;   /*触发器主题内容,即触发后执行的动作,在此是取得序列dectuser_tb_seq的下一个值插入到表dectuser中的userid字段中*/
end;


sequence和触发器如上,还有触发器创建成功,但是编译错误,不知道是哪里引起的。

求解,,谢谢

------解决方案--------------------
技术贴先帮顶贴