create or replace trigger "BIN$u9dOMKnsS++iIFbJ9Q1ryQ==$1" before insert or update or delete on SC
begin if(to_char(sysdate,'DY')='WED' RAISE_APPLICATION_ERROR(-20600,'不能在周三修改表sc'); endif end triggersc;这个语句有问题吗?触发器的名字怎么改?
没有备份,那就只能用: flashback table 表 to before drop;
create or replace trigger "BIN$u9dOMKnsS++iIFbJ9Q1ryQ==$1" before insert or update or delete on SC on each row begin if(to_char(sysdate,'DY')='WED' THEN RAISE_APPLICATION_ERROR(-20600,'不能在周三修改表sc'); end if; end triggersc;
你这个触发器语法格式有问题。因为这个触发器是从回收站恢复的,所以名字变了。不过触发器用什么名字并不影响它的触发。 实在想改: alter trigger "BIN$u9dOMKnsS++iIFbJ9Q1ryQ==$1" rename to xxx;
先disable 掉触发器,(alter table 表 disable all triggers;)在给触发器重命名,重编译
学习一下~~原来drop后还可以恢复~~
rollback 已经不行了 通用的办法是用以前的备份restore,recovery 如果你的数据库是运行在rechive模式下的10g以上数据库且打开了flashback的话可以 flashback drop table
before insert or update or delete on SC
begin
if(to_char(sysdate,'DY')='WED'
RAISE_APPLICATION_ERROR(-20600,'不能在周三修改表sc');
endif
end triggersc;这个语句有问题吗?触发器的名字怎么改?
没有备份,那就只能用:
flashback table 表 to before drop;
before insert or update or delete on SC
on each row
begin
if(to_char(sysdate,'DY')='WED' THEN
RAISE_APPLICATION_ERROR(-20600,'不能在周三修改表sc');
end if; end triggersc;
实在想改:
alter trigger "BIN$u9dOMKnsS++iIFbJ9Q1ryQ==$1" rename to xxx;
通用的办法是用以前的备份restore,recovery
如果你的数据库是运行在rechive模式下的10g以上数据库且打开了flashback的话可以 flashback drop table