- 浏览: 808987 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (307)
- struts (8)
- hibernate (3)
- spring (32)
- opensourceproject (12)
- javaScript (9)
- primeton EOS (2)
- journey of heart (10)
- Design pattern (6)
- ejb (17)
- point (37)
- Linux&Unix (22)
- ibatis (10)
- AJAX (6)
- DB (26)
- Protocol (6)
- chart (4)
- web server (11)
- webservice (7)
- integration (3)
- tuxedo (5)
- ext (4)
- android (1)
- c/c++ (12)
- JVM (1)
- paginationFrame (2)
- code (2)
- report (1)
- High-performance web (1)
- svn (1)
- JQuery (1)
- workDaily (2)
- cloud (16)
- Python (8)
- English (2)
- shell (5)
- googleCode (1)
- nio (1)
- hyper-v (1)
- debug (3)
- vbs (2)
- openstack (3)
- K8S (1)
- Mesos (0)
- Spark (0)
- Marathon (0)
最新评论
-
钱图大展:
chao2751021 写道lib包哪里去下载,找不到
大型网站用户行为记录的一个实现--基于clickStream(第一部分) -
钱图大展:
无法下载
大型网站用户行为记录的一个实现--基于clickStream(第一部分) -
fm395728572:
shell脚本中用到了环境变量,但是获取不到,例如脚本中有一句 ...
ganymed-ssh2 for Java -
liuhanjiang:
我qq147229234
大型网站用户行为记录的一个实现--基于clickStream(第一部分) -
liuhanjiang:
博主 我利用您提供的方法实现博文中介绍的clickstream ...
大型网站用户行为记录的一个实现--基于clickStream(第一部分)
1.目的:
网厅前台订单查询中只查到netb_order的内容,由于接到一个越级投诉,用户需要看到预受理单子
关于10000号客户人员对订单的回复,由于订单表根据订单类型的不同,关联的是不同的订单明细表,10000号
客服人员的回复存在不同的订单明细表里,于是考虑在数据库级别使用触发器。这样改动量小
2.实现:
a.首先在netb_order中加一个字段 叫 replycontent 用来存10000号客服人员对订单的回复
b.在各种订单明细表中都加上 trigger ,当有10000号客服人员添加回复的时候,trigger 会自动把明细表
回复内容同步到netb_order 中的replycontent 字段
什么是触发器?
触发器
是特定事件出现的时候,自动执行的代码块。类似于存储过程,但是用户不能直接调用他们。
功能:
1、 允许/限制对表的修改
2、 自动生成派生列,比如自增字段
3、 强制数据一致性
4、 提供审计和日志记录
5、 防止无效的事务处理
6、 启用复杂的业务逻辑
先写一个例子玩玩 ,建立两个表test1,test2,表结构一样, 当往test1表中插入数据的时候,使用触发器,自动往test2表中也插入一条数据
create or replace trigger tr_insert_test1 before insert on test1 for each row begin insert into test2 values(:new.id,:new.name); end;
当使用 insert into test1(id,name) values('123','huxl');的时候 test2表中也多了一条记录
:new --为一个引用最新的列值;
:old --为一个引用以前的列值; 这两个变量只有在使用了关键字 "FOR EACH ROW"时才存在.且update语句两个都有,而insert只有:new ,delect 只有:old;
before表示在操作完成前触发, after表示在完成后触发
下面完成我们的业务
3.步骤: a. 见将历史数据同步到netb_order表中 update netb_order o set o.replycontent= (select up.replycontent from netb_PackagesNewSetUp up where up.id=o.businessid); update netb_order o set o.replycontent= (select ps.reply from netb_phonenewsetup ps where ps.id=o.businessid); update netb_order o set o.replycontent= (select sr.reply from netb_selfhoodreq sr where sr.selfhoodreqid=o.businessid); update netb_order o set o.replycontent= (select ci.reply from netb_cards_info ci where ci.id=o.businessid); update netb_order o set o.replycontent= (select bo.reply from netb_basicorder bo where bo.id=o.businessid); 2. 为订单从表添加触发器 drop trigger xxx 触发器需要一个一个执行 create or replace trigger tr_netb_PackagesNewSetUp after update of replycontent on netb_PackagesNewSetUp for each row begin update netb_order set replycontent=:new.replycontent where businessid=:old.id; end; create or replace trigger tr_netb_phonenewsetup after update of reply on netb_phonenewsetup for each row begin update netb_order set replycontent=:new.reply where businessid=:old.id; end; create or replace trigger tr_netb_selfhoodreq after update of reply on netb_selfhoodreq for each row begin update netb_order set replycontent=:new.reply where businessid=:old.selfhoodreqid; end; create or replace trigger tr_netb_cards_info after update of reply on netb_cards_info for each row begin update netb_order set replycontent=:new.reply where businessid=:old.id; end; create or replace trigger tr_netb_basicorder after update of reply on netb_basicorder for each row begin update netb_order set replycontent=:new.reply where businessid=:old.id; end;
参考:
http://hi.baidu.com/zhangyadong110/blog/item/289220233f983baf4723e807.html
http://space.itpub.net/12045182/viewspace-613908
发表评论
-
使用shell+procedure构造测试数据
2012-01-17 15:27 1236more test.sh #!/usr/bin/bash ... -
porting oracle to mysql
2011-09-02 08:09 1371很久都没写blog了,忙着结婚,忙着和媳妇度过在西安为数不 ... -
ORACLE+UNIX易错问题集锦
2011-02-26 23:31 1579很好的文章! -
Oracle 常用SQL技巧收藏(转载)
2010-11-19 12:53 12751. SELECT子句中避免使用 “*” 当你想 ... -
oracle 存储过程学习
2010-05-15 17:13 1794存储过程创建语法: create or replac ... -
记录一次 mysql 无法启动 的问题
2010-05-10 14:10 1738早上看了下我的mysql 服务器,发现无法启动了 ... -
Oracle Sql优化笔记
2010-05-05 10:33 1293基本的Sql编写注意事项 尽量少用IN操作符,基本上所有 ... -
oracle恢复误删除数据,解除锁定的等sql语句
2010-04-27 12:54 21660. (SELECT SID,SERIAL# FROM ... -
Oracle数据库中分区表的操作方法
2010-04-15 08:34 1225在大型的企业应用或企业级的数据库应用中,要处理的数据量通常可以 ... -
谈谈怎么实现Oracle数据库分区表
2010-04-15 08:13 2106谈谈怎么实现Oracle数据库分区表 Oracle ... -
使用 exp, imp命令 导出导入数据
2010-04-09 00:08 1618目标 : 我是吧64上的数据用netbnew用户( ... -
SQL注入攻击例子及Statement和PreparedStatement的比较
2010-03-19 22:56 5662SQL injection is a technique th ... -
mysql explain语法解释
2010-02-01 15:13 1346explain显示了mysql如 何使用索引来处理select ... -
Redhad4 下安装mysql5
2010-01-25 21:18 2137一开始是下载的是2进制的包,按照网上的教 ... -
redhat5 下安装 oracle10g
2010-01-23 05:36 2676工作中使用的一直是oracle 数据库 从来 ... -
oracle 小技巧
2009-12-24 21:58 10521.启动和关闭数据库 举例:我们64 测试环境 ... -
mysql 小技巧
2009-12-24 21:45 11101. mysql 看所有表的信息 select * ... -
解决远程连接mysql错误1130代码的方法
2009-12-22 21:27 8886解决远程连接mysql错误 ... -
powerdesigner 基本操作
2009-11-19 22:30 14151.将物理模型 pdm文件 导成数据字典 ... -
oracle 分页例子
2009-10-28 08:44 1466select tp_card_num,serial,resul ...
相关推荐
本文将详细介绍Oracle触发器的概念、类型以及如何使用触发器来实现复杂的数据控制。 #### 二、触发器的概念与类型 **1. 触发器的基本概念** 触发器是一种特殊的存储过程,它在特定数据库事件(如INSERT、UPDATE或...
- Oracle Forms Trigger.txt 可能专注于如何在Oracle Forms中使用触发器,如在表单级别触发器的应用,以及它们如何与表单事件交互。 - MAIN_TABLE.txt 可能是一个具体的数据库表格的详细描述,包含其结构、字段和...
本篇将重点介绍如何在使用JDeveloper这款强大的集成开发环境(IDE)时,结合Oracle的sequence和trigger来实现高效的数据操作。 首先,让我们理解一下sequence和trigger的概念。在Oracle中,sequence是一种自动递增...
### Oracle Trigger 概述 #### 6.1 触发器的类型 ##### 6.1.1 DML 触发器 DML (Data Manipulation Language) 触发器是一种特殊的触发器类型,它会在特定的数据操纵语言操作(如 INSERT、UPDATE 或 DELETE)执行时...
标题“Oracle Trigger at a Certain Time”涉及到Oracle数据库中的定时触发器,这是一种数据库对象,它可以在特定时间或事件发生时自动执行预定义的SQL语句或PL/SQL块。Oracle Trigger是数据库应用程序的重要组成...
这是本人为公司ERP开发人员做的trigger报告,内容全面,并比较深入,有图例说明解释,以及一些流程图例等,是学习trigger的一个很好笔记。
在Oracle中,查看、编辑、重命名和删除触发器同样使用类似的操作,如`SELECT * FROM USER_TRIGGERS`来查看触发器,`ALTER TRIGGER`用于编辑,`RENAME TRIGGER`用于重命名,`DROP TRIGGER`用于删除。 通过学习和掌握...
oracleform常用Trigger的触发时机.pdf
在Oracle数据库中,跟踪用户活动是一项重要的管理任务,有助于监控系统的使用情况、保障安全和优化性能。Oracle从Oracle8i开始引入了一类特殊触发器,它们不再局限于传统的DML事件,而是扩展到了系统级别,包括...
Oracle数据库中的触发器(Trigger)是一种数据库对象,用于在特定的数据库操作(如INSERT、UPDATE、DELETE)发生之前或之后自动执行预定义的SQL语句或PL/SQL代码块。触发器是数据库级别的事件响应机制,它允许开发...
### Trigger语法详解 #### 一、引言 在数据库领域,触发器(Trigger)是一种特殊类型的存储过程,它被设计用于响应对特定表的数据修改操作(如INSERT、UPDATE或DELETE)。触发器能够在这些操作发生时自动执行,...
Oracle培訓Oracle Procedure﹑Function、Trigger等
这些异常可以直接使用,不需要声明。 用户定义异常需要程序员自己定义代码,对异常情况进行处理。例如,声明一个名为 e_toomanystudents 的异常,可以在程序中引发该异常,以处理过多学生的情况。 声明异常情态...
综上所述,使用Oracle触发器备份表数据是一种高效且灵活的方法,但同时也需要注意其潜在的局限性和挑战。通过合理设计和优化触发器,可以有效提升数据备份的效率和安全性,为数据库管理提供有力的支持。
### Oracle自治事务(Trigger)详解 #### 一、概述 Oracle数据库中的触发器是一种存储过程,它被设计为当特定事件发生时自动执行。这些事件包括数据修改操作,如INSERT、UPDATE或DELETE等。触发器可以确保数据的...
这个问题可以通过使用Oracle自治事务来解决。 Oracle自治事务将一个主事务分割成几个子事务,在执行完子事务以后再继续主事务。这里的关键是,子事务是独立于主事务的,子事务中的Rollback和Commit操作只会影响子...