WEB开发网
开发学院数据库Oracle Oracle 触发器语法及实例(二) 阅读

Oracle 触发器语法及实例(二)

 2008-09-19 12:55:36 来源:WEB开发网   
核心提示: 测试,插入几条记录insertintotestvalues(0,'ff');insertintotestvalues(0,'ff');insertintotestvalues(0,'tt');实例二: 创建一个触发器,无论用户插入新记录,还是

测试,插入几条记录  

   insertintotestvalues(0,'ff');
  insertintotestvalues(0,'ff');
  insertintotestvalues(0,'tt');

实例二:

创建一个触发器,无论用户插入新记录,还是修改emp表的job列,都将用户指定的job列的值转换成大写.

   createorreplacetriggertrig_job
  beforeinsertorupdateofjob
  onemp
  foreachrow
  begin
  ifinsertingthen
  :new.job:=upper(:new.job);
  else
  :new.job:=upper(:new.job);
  endif;
  end;

2.3、instead of触发器.

(此触发器是在视图上而不是在表上定义的触发器,它是用来替换所使用实际语句的触发器.)

语法如下:

   createorreplacetriggertrig_test
  insteadofinsertorupdateon表名
  referencingnewasn
  foreachrow
  declare
  ..........
  begin
  ........
  end;

2.4、模式触发器.

可以在模式级的操作上建立触发器.

实例如下: 

   createorreplacetriggerlog_drop_obj
  afterdroponschema
  begin
  insertinto.....
  end;

2.5、数据库级触发器.

可以创建在数据库事件上的触发器,包括关闭,启动,服务器错误,登录等.这些事件都是实例范围的,不与特定的表或视图关联.

实例:  

   createorreplacetriggertrig_name
  afterstartupondatabase
  begin
  ...........
  end;

Tags:Oracle 触发器 语法

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接