起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: guzhenpeng

[结]组织模型中加入一个人员时报触发器错**

[复制链接]
发表于 2008-4-28 09:23:54 | 显示全部楼层
好像是数据库权限问题。
建议楼主查一下Ora帮助吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-28 10:39:13 | 显示全部楼层
没办法权限都分了,DBA的都有了,但触发器找不到表,不是用户不能访问表?
回复 支持 反对

使用道具 举报

发表于 2008-4-28 14:11:21 | 显示全部楼层
1、试试在表前加用户名称
2、为用户分配表的访问权限
3、使用同义词
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-28 14:48:37 | 显示全部楼层
现在触发器可用了,分配了DBA权限.但是只有修改和删除时成功了,新增时就报错,我发图发上来

error.jpg

191.29 KB, 下载次数: 45

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-28 14:50:20 | 显示全部楼层
我新增的三个字段也都有值啊,怎么搞得?下面是触发器的代码
CREATE OR REPLACE TRIGGER "U_ITSMSYS"."HRTABLETR"

  AFTER INSERT OR UPDATE OR DELETE ON "U_ITSMSYS"."TPERSON"
  FOR EACH ROW
BEGIN
  IF INSERTING THEN
     INSERT INTO U_HR.TBL_MANPOWERINFO(FGUID,PSNID,Name)
            VALUES (:new.FGUID,:new.FID,:new.FDISPLAYNAME);
  ELSIF UPDATING THEN
     UPDATE U_HR.TBL_MANPOWERINFO SET
     FGUID=:new.FGUID,PSNID=:new.FID,Name=:new.FDISPLAYNAME
     WHERE FGUID=ld.FGUID;      
  ELSIF DELETING THEN        
     DELETE U_HR.TBL_MANPOWERINFO
     WHERE FGUID=ld.FGUID;
  END IF;
END;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-28 14:51:52 | 显示全部楼层
CREATE OR REPLACE TRIGGER "U_ITSMSYS"."HRTABLETR"

  AFTER INSERT OR UPDATE OR DELETE ON "U_ITSMSYS"."TPERSON"
  FOR EACH ROW
BEGIN
  IF INSERTING THEN
     INSERT INTO U_HR.TBL_MANPOWERINFO(FGUID,PSNID,Name)
            VALUES (:new.FGUID,:new.FID,:new.FDISPLAYNAME);
  ELSIF UPDATING THEN
     UPDATE U_HR.TBL_MANPOWERINFO SET
     FGUID=:new.FGUID,PSNID=:new.FID,Name=:new.FDISPLAYNAME
     WHERE FGUID=: old.FGUID;      
  ELSIF DELETING THEN        
     DELETE U_HR.TBL_MANPOWERINFO
     WHERE FGUID=: old.FGUID;
  END IF;
END;
:号后面加了个空格去掉表情(无奈)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-28 15:33:24 | 显示全部楼层
可算是解决了:共享一下经验
在用户A下的表A写触发器
用户分配对别的用户表操作的权限
grant select   on 用户B.表B1 to 用户A;
grant insert    on 用户B.表B1 to 用户A;
grant update on 用户B.表B1 to 用户A;
grant delete  on 用户B.表B1 to 用户A;
X3中对表A要是重新生成了物理表上面的权限就要重新分配.没办法,这个调试了大半天才找到原因.再有就是用户有DBA的权限也不管用,
我不大明白select * from dba_role_privs where grantee='用户名';
看到用户有DBA的权限,怎么触发器就不好使,说是没权限,非得要分配上面的权限,可能SELECT权限没什么用,但索性都给分配上了.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-28 15:35:11 | 显示全部楼层
真要命,这个问题搞了我四个人天的时间,多谢提的建议,结帖吧.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-11 22:38 , Processed in 0.038937 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表