方法1:
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;
方法2:
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;
方法3:
create or replace trigger test
before update on tb for each row
declare
v_u1 varchar2(100):= login_user;
begin
if v_u1 = '011' then
:new.name := :old.name;
end if;
end;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23490154/viewspace-1062431/
,如需转载,请注明出处,否则将追究法律责任。