由于公司的新接得项目要实现一批数据的同步,通过外围厂商提供的一系列各个系统的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文件并定时执行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)