oracle触发怎么更换,oracle触发器如何停用

oracle触发器怎样修改

CREATE OR REPLACE TRIGGER trg_cost

创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为义安企业提供专业的成都网站建设、成都网站设计,义安网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

AFTER INSERT ON cost for each row

begin

update cost a

set a.oper_date =sysdate

where a.oper_date =:new.NEW.OPER_DATE

-- 其他条件

...;

END ;

希望能够帮到你。谢谢!

请问我写的ORACLE的触发器该如何修改?

create or replace trigger emergency

after

insert or update of p_time

on tableA

for each row

Begin

if p_code = '9999' then

update tableB set p_time = :new.p_time where id = :new.id

end if;

end;

oracle 触发器问题

提示已经讲得清楚: 表TEST.TB_CLEARING发生了变化, 触发器/函数不能读它.

在使用oracle行级(for earch row设定)触发器时要注意:

1.触发器不可以执行COMMIT、ROLLBACK或SAVEPOINT语句,而且不可以调用执行这些语句之一的函数或过程。

2.触发器不可以声明long或LONG RAW变量。

3.触发器不可以在定义它的表上执行DML操作(行级触发器)

你在该触发器中要读取触发器器所在的表的数据(数据DML操作), 这是不允许的.

你将行级触发改成表级触发, 即去掉for each fow试试. 反正在你的语句中也没有使用到NEW, OLD这两个行级触发器新值, 旧值记录.

另外, 粗看你的代码, 似乎更新没有针对性(没有针对内容有变更的记录对tb_budget进行更新), 这样做效率不高, 应该考虑优化你的更新逻辑和代码.

oracle 触发器

在Order表上建立一个触发器,拿得表只允许 ZhangSan修改,即使System管理员也不能修改,怎么建立触发器 ?

CREATE OR REPLACE TRIGGER BeforeAllOrder

BEFORE INSERT OR UPDATE OR DELETE ON Order

FOR EACH ROW

BEGIN

IF USER != 'ZhangSan' THEN

RAISE_APPLICATION_ERROR(-20000, '只有 ZhangSan 可以修改这个表!');

END IF;

END;

在Students表上插入数据,学号中不能含有-?!等等这种字符?

这种不需要触发器,直接建立约束就可以了。

例如:

ALTER TABLE Students

ADD CONSTRAINT Students_No_check

CHECK ( INSTR(学号, '-') = 0

AND INSTR(学号, '?') = 0

AND INSTR(学号, '!') = 0

)

参考资料:

Oracle 触发器

Oracle异常处理

关于oracle的触发器,请问如何修改

create or replace trigger jilu_date_end

before update of shenpi on jilu

for each row

declare

etime date;

begin

select sysdate into etime from dual;

//这里用update语句进行那个时间更新即可

end jilu_date_end;


文章标题:oracle触发怎么更换,oracle触发器如何停用
路径分享:http://azwzsj.com/article/dscdhos.html