如何实现一个定时任务来对数据库中的数据进行 *** 作

如何实现一个定时任务来对数据库中的数据进行 *** 作,第1张

由于公司的新接得项目要实现一批数据的同步,通过外围厂商提供的一系列各个系统的webervices接口定时将数据同步到我们开发的共享平台上,由于厂商系统的数据是不断在变化以及各系统闲忙时的特点,所以定时同步任务的执行必须在时间上能够动态配置。因此,我们需要动态的从数据库中获取配置信息,以改变各个定时间的执行规则,废话不说了,上代码:(我利用的是ssh框架直接写的,框架搭建不再叙述)

1创建数据表(我用的是MySQL)

[sql] view plain copy

DROP TABLE IF EXISTS `t_wsdoc`;

CREATE TABLE `t_wsdoc` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`triggername` varchar(50) NOT NULL,

`jobdetailname` varchar(50) N

建用户和授权要用DBA

最简单得建用户:

create user 用户名 identified by 密码

用户解锁 alter user 用户名 account unlock(不解锁无法登陆)

授权用 grant

建完用户首先要授权登陆权限

grant create session to 用户名

授权可以授权给角色和用户

也可以把角色授权给角色和用户

其他得类似 创建表得权限类似如下格式:

grant create table to 用户

可用sqlplus的方式

先在某文件夹下(我就直接以C盘根目录为例了)

创建mainsql文件

内容如下

set

linesize

200

set

term

off

verify

off

feedback

off

pagesize

0

set

head

off

set

trimout

on

set

trimspool

on

spool

aaatxt

@exportsql

spool

off

exit

其中aaatxt是你要保存的文件名,这里貌似不能导成excel,只可以保存成csv格式,然后你再自己转换吧,文本是没问题的,其中@exportsql

是另一个文件,内容如下

你要想把数据导成以逗号分隔

脚本这么写

我就简单以emp表为例了,也是用的to_char函数,只要语句写正确就OK

select

empno||','||to_char(hiredate,'yyyy-mm-dd')

from

emp;

结尾必须用分号

把这个保存成exportsql文件

然后cmd进到你要执行的文件夹下

sqlplus

用户名/密码

@main

然后无限的等待,等到把你的文件导成

你将来要是要把文件导入到哪的话,可以用sqlloader

这个网上教程很多

脚本里面把exp命令换成绝对路径试试。通过which exp命令可查看到exp的绝对路径。

crontab的定时任务有时候会有一些环境变量的问题。

有问题请追问,谢谢!

在linux机器上写一个shell脚本:功能如下:1)远程连接内网的数据库导出到linux机器的目录里2)远程连接外网的数据库把刚导出的文件导入外网数据库3)成功导入后把文件删除把scripts放在crontab 里定时执行

以上就是关于如何实现一个定时任务来对数据库中的数据进行 *** 作全部的内容,包括:如何实现一个定时任务来对数据库中的数据进行 *** 作、perl脚本,定时查询数据库(oracle、Mysql)的某个表 并输出数据、如何将oracle数据库中的一张表中的字段有选择性的导出到csv文件并定时执行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9477794.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存