欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

oracle 里面限制某个用户不能更改表里面的某个字段的触发器该如何写

更新时间: 2014-01-05 02:11:47 责任编辑: Author_N1

 

oracle 里面限制某个用户不能更改表里面的某个字段的触发器该怎么写
比如用户011 不能更改tb 表里面的name字段该怎么写这个触发器?
--参考方法--
CREATE OR REPLACE  TRIGGER TEST
BEFORE  UPDATE OF name
ON tb FOR EACH ROW
DECLARE
  L_USERNAME VARCHAR2(100);
BEGIN
  SELECT T.USERNAME INTO L_USERNAME FROM USER_USERS T;
  IF L_USERNAME = '011' THEN
    DBMS_OUTPUT.PUT_LINE('YOU CAN NOT UPDATE THE COLUMN');
    ROLLBACK;
  END IF;
END;

--参考方法--
create or replace trigger test_trig 
before update on tb
declare
user varchar2(10);
begin
   SELECT SYS_CONTEXT('USERENV','SESSION_USER') into user from dual;
   if user='011 ' and updating('name') then
      raise_application_error(-20001,'not allow change'
   end if;
end;

可不可以
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:11:47
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6802/
本文WWW.DOC100.NET DOC100.NET版权所有。