oracle触发器怎么写 请写出ORACLE触发器的种类及对应的功能

求一个简单的oracle 触发器 写法

创建两个表:

公司主营业务:成都做网站、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出印江免费做网站回馈大家。

create table a

(stdid int,

stdname varchar2(10));

create table b

(stdid int,

stdname varchar2(10));

创建触发器:

CREATE OR REPLACE TRIGGER tr_insert 

after insert

ON a

FOR EACH ROW 

BEGIN

INSERT INTO b(stdid,stdname)

VALUES(:new.stdid,:new.stdname);

END;

验证,在a表中插入数据:

insert into a values (1,'a');

commit;

验证b表结果:

Oracle 触发器怎么写?

这个只能遗憾的告诉你,不能实现

因为触发器中不能运行 ddl语句和commit,rollback语句

所谓的ddl语句就是用语定义和管理数据库中的对象,如Create,Alter,Drop,truncate等,DDL操作是隐性提交的!

其实刚才写了一个,创建的时候没问题,但是往a里插入数据时报错

create or replace trigger t_add_col

after insert on a

for each row

begin

execute immediate 'alter table b add '||:new.fieldname||' varchar2(30)';

end;

错误就是ora-04092,你可以看一下

oracle触发器怎么写?

创建触发器,给触发器命名,在哪个表上的增删改进行触发,是否为行级触发

编写你的逻辑

编译检查是否有语法错误啥的

测试,这里的话,就是你某一个工种的最低工资增加,那属于这个工种的员工中原来是最低工资的也要增加,所以你要先把工种中最低工资查出来,根据工种号,查询属于该工种的人有哪些,把这些员工的工资查出来,再修改工种的最低工资,再查员工工资是否也增加了。

你这表也没有,我门也没有办法给你写一个很详细的。大致思路一般是这样


文章标题:oracle触发器怎么写 请写出ORACLE触发器的种类及对应的功能
网页地址:http://myzitong.com/article/hicicp.html