160316、实时处理oracle数据库中表的数据变化
http://blog.csdn.net/as339000204/article/details/45390727
近期接受项目需求,需要实时处理oracle数据库中表的数据变化,首先想到的是在程序中创建定时器,轮询表。鉴于程序冗余考虑,百度知:oracle数据库java存储过程。Oracle数据库有执行简单java代码的能力,想到一套新的解决思路。
思路:创建oracle数据库触发器,当表的数据发生变化的时候,触发器调用oracle数据库java存储过程,该过程调用程序中的接口,告知程序处理逻辑业务。
实现:
1. 在plsqldev 中编译java代码 调用接口(具体的语法百度即可) 访问地址是:http://192.168.12.57:8088/Jfinaltest/show
- create or replace and compile java source named jxdClient as
- import java.net.*;
- public class Demo {
- public static void main(String[] args) {
- try {
- URL url = new URL("http://192.168.12.57:8088/Jfinaltest/show");
- URLConnection rulConnection = url.openConnection();
- rulConnection.connect();
- rulConnection.getInputStream();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
2. 生成存储过程
- create or replace procedure prc_hehe as language java name 'Demo.main(java.lang.String[])';
3. 编写触发器调用存储过程(pre_hehe)
- create or replace trigger jxd7_trigger_wf_nodeinstance
- after update or insert
- on jxd7_wf_nodeinstance
- for each row
- begin
- if inserting then
- prc_hehe;
- elsif updating then
- prc_hehe;
- elsif deleting then
- prc_hehe;
- end if;
- end;
小结:每次表中的数据发生变化的时候,都会执行触发器中的存储过程,存储过程会调用程序的接口,之后程序处理业务逻辑。减少了代码量,保证了数据处理的实时性,减少了程序的压力
160316、实时处理oracle数据库中表的数据变化的更多相关文章
- 监测SQLServer数据库中表的数据变化 方案
sqlDependency提供了这样一种能力:当被监测的数据库中的数据发生变化时,SqlDependency会自动触发OnChange事件来通知应用程序,从而达到让系统自动更新数据(或缓存)的目的. ...
- 将Oracle数据库中的数据写入Excel
将Oracle数据库中的数据写入Excel 1.准备工作 Oracle数据库"TBYZB_FIELD_PRESSURE"表中数据如图: Excel模板(201512.xls): 2 ...
- Oracle数据库间的数据复制 - SQLPlus中的COPY命令
Copy命令可以实现不同Oracle数据库间的数据的复制,也是可以实现同一数据库的数据复制,其性能表现和导入/导出相同. 根据9i文档,说Copy命令未来会不支持,但实际上Oracle 11g仍然支持 ...
- 向Oracle数据库中插入数据出错:ORA-01036 无效的变量名或数据
向Oracle数据库中插入数据出错: 经过排查,因为Update数据时没有出错,所以OracleHelper没有问题: 看异常信息提示:无效的变量和数据,应该是SQL语句的问题,调试时所传的实例Use ...
- 删除mysql数据库中表分区数据
删除mysql数据库中表分区数据 zabbix 几个大表创建了分区,由于磁盘空间告警,特将3月前的分区给予删除. 1.查看表的数据占用磁盘空间情况 2.登录mysql中,查看表的分区情况. 3.删除表 ...
- Oracle数据库中的数据出错的解决办法
http://www.jcwcn.com/article/database/oracle/ 今天上班犯了一个严重的错误:把我们系统所使用的Oracle数据库中的数据给改掉了!当发现自己改错时,顿时冒了 ...
- ArcCatalog中通过ArcSDE向Oracle数据库中导入数据
将数据导入到Oracle指定的表空间的具体内容如下: 首先,在ArcCatalog中建立指定表空间的数据库连接(要以指定表空间的用户登录): 然后,在ArcCatlog中定位到数据源,选中并拷贝图层; ...
- Oracle数据库四种数据完整性约束
Oracle数据库四种数据完整性约束 1.实体完整性 同样的数据不能重复插入(1)采取什么措施保证实体完整性?我们可以给表创建主键约束吗,主键保证了数据的唯一性,主键可以保证同一条记录只能插入一次. ...
- 使用exp/imp 在oracle数据库间导数据
最近工作需要将oracle数据库的表数据导出到另一个oracle数据库表,找到了oracle 自带的命令行,并记录下导数据过程. 导数据过程分以下几步: 假设源数据库为A,目标数据库为B 1.在B上通 ...
随机推荐
- Object-C中的字符串对象2-可变字符串
// // main.m // 字符串-可变字符串 // // Created by zhangqs008 on 14-2-13. // Copyright (c) 2014年 zhangqs008. ...
- java中native关键字的用法
前言: 如果阅读过JDK的源码,我们会发现Thread.java类里有一个方法比较特殊 private native void start0(); 概念: native关键字说明其修饰的方法是一个原生 ...
- 通达OA 几次通过OA进行的足球抢票活动确实对OA系统提出了非常大挑战
今年集团赞助了中超的足球比赛,有比赛的时候会提前发一些球票.怎么发.发给谁这就是一个问题.后来确定通过OA来抢票. 通过在OA上发表帖子.通过信息提醒.大家看到信息提示后在帖子后面回复,依据回复先后确 ...
- Ubuntu14.04.3 64位环境下openjdk7编译
系统环境:Ubuntu14.04.3 -amd64 in VMWare1.安装openjdk7依赖 sudo apt- sudo apt--jdk sudo apt-get install build ...
- 延时NSTimer
import Foundationimport UIKit class YijfkController:UIViewController{ override func viewDidLoad() { ...
- [C++]VAssistX文件头添加注释功能设置
问题情况:每次手写注释太慢,而且不统一.问题原因:C++可以利用宏写注释,也可以使用VAssistX提供的方法.问题处理:1.安装VAssistX在VS2010上2.VS2010菜单->VAss ...
- 一款基于jQuery带事件记录的日历插件
之前我们也已经分享过不少jQuery日历插件,有些应用了CSS3的特性,外观就特别漂亮.今天要分享的这款jQuery日历插件不仅有着绚丽的外观,而且带有日期事件记录功能,点击日期即可展开事件记录窗口, ...
- HttpURLConnection的使用
import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; ...
- Ubuntu 12.04 Subversion及GUI客户端RabbitVCS安装
(经过一天的使用,发现pygtk的内存泄漏问题严重影响使用,需要打一下deepin ui做的补丁:https://github.com/linuxdeepin/deepin-ui) 1. 类似Tort ...
- [wifi]wifi模块操作
问题: 应用程序通过什么样的接口去修改wifi的账号和密码 应用程序如何控制wifi模块