sqlldr加载csv文件

背景:每一天会生成一堆CSV文件,要求将这些文件定时插入到数据库中。

实现思路:定位到工作目录中,根据当前日期生成日期目录,然后找出这个目录中的所有csv文件,循环使用sqlldr加载数据。

中间遇到的问题:control中的infile路径是写死的,不能传值,所以用动态生成控制文件的方法,曲线救国。

部署:将下面代码存到bat文件中,然后再windows下开启定时任务,批量执行这个脚本。就可以实现上述目标。

代码参考如下:

@echo off

set work_path=D:\CSVTest\
D:
cd %work_path%%date:~0,4%%date:~5,2%%date:~8,2%
for /R %%s in (*.csv) do (
echo load data > %work_path%control.ctl
echo infile '%%s' >> %work_path%control.ctl
echo append into table dept_test >> %work_path%control.ctl
echo >> %work_path%control.ctl fields terminated by ','
echo >> %work_path%control.ctl optionally enclosed by '^"'
echo >> %work_path%control.ctl ^(deptno,dname,sloc^)
 sqlldr userid = hd40/hd40@xftest control = %work_path%control.ctl log = %work_path%conrtol.log
)
pause

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值