oracle定时向mysql取数据_Oracle中通过Job实现定时同步两个数据表之间的数据
摘要:之前项目中用的触发器来实现数据解析,但是最近客户反应,会报错,所以我们从新设计了一下,通过Oracle里面的Job来解决这一问题,这样就不会对原来的数据表做操作,只对临时表操作,就不会对客户那边的上级服务器产生影响了,详细请看下面: 一:首先
摘要:之前项目中用的触发器来实现数据解析,但是最近客户反应,会报错,所以我们从新设计了一下,通过Oracle里面的Job来解决这一问题,这样就不会对原来的数据表做操作,只对临时表操作,就不会对客户那边的上级服务器产生影响了,详细请看下面:
一:首先建个主表:MBINMSGS(这里的用户是MIP)
CREATE TABLE MIP.MBINMSGS
(
ID NUMBER(30) NOT NULL,
MBINMSGS_CLOB_MSG CLOB,
MBINMSGS_DATE_RECEIVED DATE,
MBINMSGS_DATE_PROCESSED DATE,
MBINMSGS_SUBSYSTEM_NAME VARCHAR2(100 BYTE),
MBINMSGS_SUBSYSTEM_DATE_SENT DATE,
SERVICENAME VARCHAR2(30 BYTE) NOT NULL
)
二:其次建个临时表用来存储主表过来的数据:MBINMSGS_TEMP
CREATE TABLE MIP.MBINMSGS_TEMP
(
ID NUMBER(30) NOT NULL,
MBINMSGS_CLOB_MSG CLOB,
MBINMSGS_DATE_RECEIVED DATE,
MBINMSGS_DATE_PROCESSED DATE,
MBINMSGS_SUBSYSTEM_NAME VARCHAR2(100 BYTE),
MBINMSGS_SUBSYSTEM_DATE_SENT DATE,
SERVICENAME VARCHAR2(30 BYTE) NOT NULL
)三:建立同步数据的存储过程:JOB_PRO_TEMP
CREATE OR REPLACE PROCEDURE MIP.JOB_PRO_TEMP
AS
TEMP_ID NUMBER;
BEGIN
SELECT NVL (MAX (ID), 0) INTO TEMP_ID FROM MBINMSGS_TEMP;
INSERT INTO MBINMSGS_TEMP
SELECT *
FROM MBINMSGS
WHERE MBINMSGS.ID > TEMP_ID;
--insert into MBINMSGS_TEST select * from MBINMSGS;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE ('Exception happened,data was rollback');
ROLLBACK;
END;
/四:建立定时执行存储过程的Job:
var job_num number;
begin
dbms_job.submit(:job_num,'JOB_PRO_TEMP;',SYSDATE,'sysdate+1/24/60');
end;
commit;五:查看新建的Job是否正确运行:
SELECT * FROM USER_JOBS;六:可能有的人会说我建了Job但是不能运行,那说明你的Job没有运行,我在这个过程中就遇到了这个的问题,最后经过查找,解决了,办法如下:
检查Oracle的JOB运行环境:如果为0表示不运行JOB,Oracle一般默认安装完为10,但是我安装oracle以后就不知道为什么是0。
查看进程数(这里是用system管理员账号登录)
show parameter job_queue_processes;
修改进程数(如果你的是0,才需要按照以下语句修改):
我这里改为10模拟以下这个操作;
在PL/SQL的command窗口中输入以下语句:
alter system set job_queue_processes=10 scope=both;
修改完以后我们查看一下,如果为10那就说明好了,然后你把刚才建的Job删除了,在重新建立一个Job:
show parameter job_queue_processes;七:删除Job的方法:
exec dbms_job.remove(81);
说明:这里的数字81是对应DBA_JOBS表中当前要删除的JOB记录所在行的JOB字段的值;
更加详细的关于Oracle的Job请看:http://www.cnblogs.com/java-pan/archive/2012/09/16/oracle_job.html
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
oracle定时向mysql取数据_Oracle中通过Job实现定时同步两个数据表之间的数据相关推荐
- R语言筛选dataframe中两个日期之外的数据行,介于两个日期(包括两个日期)之间的数据行
R语言筛选dataframe中两个日期之外的数据行,介于两个日期(包括两个日期)之间的数据行 目录
- uniapp 子组件 props拿不到数据_谈一谈使用 webpack 开发时,Vue 组件之间的数据传递...
•我们在学习Vue的时候,难免会使用各个组件之间传递数据.•先来介绍一下Vue中组件传递的方式,有父组件传递给子组件数据,子组件传递给父组件数据,父组件直接获取子组件中数据,子组件直接获取父组件数据以 ...
- sql azure 语法_Azure SQL数据同步–在Azure SQL数据库之间复制数据和架构更改
sql azure 语法 In this article, we will review how to configure the sync group to replicate data betwe ...
- VLOOKUP函数查找两个工作表的重复数据
VLOOKUP函数查找两个工作表的重复数据 第一次用到这个函数还是好几年以前,有个学生家长问我,如果两个工作表里有部分重复的数据,怎么才能找出来?当然这两个工作表的数据都很多,所以人工检索的话工作量太 ...
- 使用正则表达式获取两个特定词之间的数据(Python代码)
使用正则表达式获取两个特定词之间的数据: (Python代码) 当你想取得数据前面有约束条件,后面没有约束条件(也就是每行的最后一段数据时),最好使用\n作为后面的约束条件.如下例子所示: >& ...
- oracle 查询时间点数据_ORACLE中查询时间点前后一分钟的数据
匿名用户 1级 2013-03-31 回答 你还是列举几条数据吧 并且把你想要的结果也最好做个简单的图出来,太抽象了 追问: 医院用的床旁监护仪,每2到3分钟分钟会往数据库发一条数据. 但是我只想看到 ...
- mysql查询某张表的所有外键_oracle中查询所有外键引用到某张表的记录
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 oracle中查询所有外键引用到某张表的记录 //查询表的主键约束名 select * from user_constr ...
- qt中的mysql能存入多少行数据_Qt中提高sqlite的读写速度(使用事务一次性写入100万条数据)...
SQLite数据库本质上来讲就是一个磁盘上的文件,所以一切的数据库操作其实都会转化为对文件的操作,而频繁的文件操作将会是一个很好时的过程,会极大地影响数据库存取的速度.例如:向数据库中插入100万条数 ...
- oracle 查询各科前3名_oracle中的sql求总分前三名
展开全部 可以用row_number来查询. 1.创建数据表,插入数据:create table sc (id int, name varchar(20), class varchar(20), sc ...
最新文章
- EasyDarwin开源社区 短视频拍摄项目Github地址
- 计算机合并键功能,Word组合(功能键与Ctrl等组合) -电脑资料
- android 获取数组大小,看得见的数据结构Android版之数组表(数据结构篇)
- IOSelect模块
- 第一册:lesson forty three。
- 40美元18分钟训练整个ImageNet!他们说,这个成绩人人可实现
- SQL Server多表同时查询
- centos6 安装glibc-2.14.1
- java代码 软件_适合新手的java代码编写软件有哪些?
- ECharts实操手册
- 关于 2021 年度「博客之星」评选刷票行为处罚通知
- 手把手教你开发App(HelloWorld)
- 堆积木——GBQ4.0设置“统一设置安装费用”中的“高层建筑增加费”
- clean-label backdoor attacks 论文笔记
- NovelAi + Webui + Stable-diffusion本地配置
- 操作系统笔试面试基本内容
- MOS电平转换电路 stm32的I2C电平转换电路 IIC电平转换电路
- 编写c语言数据从结构时头文件,C语言与数据结构 实验指导.doc
- 手把手教用matlab做无人驾驶
- 现在的BAT,就是曾经的外企
热门文章
- CPU的向量化、多核技术、多路技术、众核技术
- Ubuntu 18.04: Debug package with debug symbol
- EPTP 和 EPT 分页结构条目的格式
- Linux网络协议栈:中断下半部处理
- Redis架构图-1
- CentOS 7.2 终端安装字体
- 实验楼python3中挑战一_实验楼python3学习挑战项目
- 菜单向上拉html,模拟select控件,CSS上拉菜单
- [独家放送]Unity2019更新规划速览,将有官方的可视化编程!
- Unity Failed executing external process for 'Bake Runtime' job