批量数据文件用sqlldr导数据到oracle中-创新互联

  使用sqlload导文本数据到oracle中想必很多人多使用过,但是倘若有几百或者几千个数据文本,或者实时有文本数据产生。这种场景如何批量导入oracle呢,下面就来讲解下我处理的方式。

成都创新互联专业为企业提供冷水江网站建设、冷水江做网站、冷水江网站设计、冷水江网站制作等企业网站建设、网页设计与制作、冷水江企业网站模板建站服务,十余年冷水江做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

  1.shell脚本LoadData.sh如下

#!/bin/bash data_dir=/home/bea/datasource/warn-log/dayflow  # 文本数据目录 data_dir_bak=/home/bea/datasource/warn-log/dayflow_bak shell_dir=/home/bea/script while [ 1 ] do cd $data_dir if [ `pwd` == $data_dir ] then    filelist=`ls -rt | grep dayflow.log_.`  #数据文本文件名匹配 fi #echo $filelist cd $shell_dir if [ `pwd` == $shell_dir ] then    for file in $filelist    do        date=`date "+%Y%m%d %H:%M:%S"`        export LoadFileName=$data_dir"/"$file    #这个地方很重要,要加载变量到环境中        echo "Time is $date ,开始导$LoadFileName数据"        sqlldr user_1/123456@213_db control=dayflow.log.ctl BAD=dayflow.log.bad        echo "Time is $date ,$LoadFileName数据导入完毕"                echo "开始备份文件$file"        mv $LoadFileName $data_dir_bak        echo "$file备份完毕"    done fi done

这个地方最应该要注意的是

export LoadFileName=$data_dir"/"$file

这里将LoadFileName (导入oracle 的文本,绝对路径)这个变量 export到linux环境中,这样sqlload的控制文件就可以读到这个变量并进行导入

2.sqlldr控制文本dayflow.log.ctl

load data CHARACTERSET AL32UTF8 infile '$LoadFileName' APPEND into table user_1.BIL_FLUX_HIGH_CUR fields terminated by '|' trailing nullcols (ACCS_NBR "TRIM(:ACCS_NBR)", DATE_ID "TRIM(:DATE_ID)", TOTAL_FLUX "TRIM(:TOTAL_FLUX)", sys_date "sysdate")

请注意 infile '$LoadFileName',这里就是shell中 刚才export的变量,通过这种方式就可以以变量的形式传入文件名,那么批量导入也就是一个循环的操作。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

当前题目:批量数据文件用sqlldr导数据到oracle中-创新互联
文章地址:https://www.cdcxhl.com/article2/dshjic.html

成都网站建设公司_创新互联,为您提供关键词优化品牌网站制作网站制作动态网站外贸建站虚拟主机

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设