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上通 ...
随机推荐
- 相似微信的ChattingUi
先看主页面布局 activity_imitate_weixin_main.xml <RelativeLayout xmlns:android="http://schemas.andro ...
- python内置函数之print()
定义:将值打印到一个流对象,或者默认打印到sys.stdout. 语法: print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=Fal ...
- 1、改变 vs编辑器的主题
打开 visual studio, 在菜单栏选择 工具 -> 扩展和更新 -> 输入 “color theme” 安装完成后,选择样式. 选择好样式后, vs 立即改变主题.再次打开样式 ...
- [转]James Bach:测试人员的角色
[转]James Bach:测试人员的角色 2015-05-13 以前,我是个开发人员.我不喜欢这个工作,无尽的压力让我疲惫.我几乎从未感觉到自己的工作做得足够好.我从未有过真正的休息.如果我没做好, ...
- ar命令学习
之前,学习Linux下使用静态库的时候涉及到了这三个命令: gcc -c my_strcpy.c my_strcmp.car rcs libmylib.a *.ogcc -o main main.c ...
- C语言 · 数对
算法训练 数对 时间限制:1.0s 内存限制:512.0MB 问题描述 编写一个程序,该程序从用户读入一个整数,然后列出所有的数对,每个数对的乘积即为该数. 输入格式:输入只有一行, ...
- PHP——0126最初
数据库mydb 表格info,nation 实现效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo ...
- CSS(四):字体和文本属性
一.字体属性 属性 描述 font-style 设置字体风格 font-weight 设置字体粗细 font-size 设置字体的尺寸(一般用px表示) font-family 设置字体系列 font ...
- 微信APP支付 - C#
最近挺忙的,没时间写东西.然后在弄微信APP支付,网上的搜索一趟,都比较凌乱,我也遇到一些坑,不过也算弄好了,记录分享一下. 1.准备各种调用接口需要的参数,配置app.config. <!-- ...
- Spring Boot - can't start with embedded tomcat error
com.fasterxml.jackson.core版本问题,更新最新版本即可. I had the same problem, it seems that: <dependency> & ...