另外建一个新用户,然后只授Insert的权限给新用户 grant insert on tbname to 新用户;
觸發器就可以了 在表的刪除事件上觸發就可以了。 --example CREATE OR REPLACE TRIGGER TRI_NO_DELETE BEFORE DELETE ON YOUR_TABLE FOR EACH ROW DECLARE I NUMBER(10); BEGIN IF DELETEING THEN RAISE_APPLICATION_ERROR(-20007,'YOU CAN NOT DELETE THIS TABLE!'||SQLERRM(SQLCODE));
END IF; END;
baojianjun(包子) 说的有道理
也可以那一个视图啊!!视图只有INSERT的权限!!!
觸發器就可以了 在表的刪除事件上觸發就可以了。 --example CREATE OR REPLACE TRIGGER TRI_NO_DELETE BEFORE DELETE ON YOUR_TABLE FOR EACH ROW DECLARE I NUMBER(10); BEGIN IF DELETEING THEN RAISE_APPLICATION_ERROR(-20007,'YOU CAN NOT DELETE THIS TABLE!'||SQLERRM(SQLCODE));
END IF; END;我觉得还是这样比较好一点!直接!
修改用户权限,只有insert权限,可以在dba statio中改
to zwj0712(阿张):如果只是对单表映射的视图,而不是多表的联合视图,还是可以做INSERT操作的。
然后给该用户授权
grant insert on tbname to 新用户;
在表的刪除事件上觸發就可以了。
--example
CREATE OR REPLACE TRIGGER TRI_NO_DELETE
BEFORE DELETE ON YOUR_TABLE
FOR EACH ROW
DECLARE
I NUMBER(10);
BEGIN
IF DELETEING THEN
RAISE_APPLICATION_ERROR(-20007,'YOU CAN NOT DELETE THIS TABLE!'||SQLERRM(SQLCODE));
END IF;
END;
在表的刪除事件上觸發就可以了。
--example
CREATE OR REPLACE TRIGGER TRI_NO_DELETE
BEFORE DELETE ON YOUR_TABLE
FOR EACH ROW
DECLARE
I NUMBER(10);
BEGIN
IF DELETEING THEN
RAISE_APPLICATION_ERROR(-20007,'YOU CAN NOT DELETE THIS TABLE!'||SQLERRM(SQLCODE));
END IF;
END;我觉得还是这样比较好一点!直接!
呵呵....
另一种方法是通过triger也行