背景
从事于数据方面工作的小伙伴们,在工作做经常会入库一些文件,比如excel,CSV,文本文件。很多小伙伴们都是采用plsql或者其他工具软件,通过粘贴复制到表中,或者工具提供的文本导入方法。对于数据量一大,几十万甚至千万级别的数据量,工具多半会很慢或者奔溃。所以这里提供一下本人在工作中解决该办法的思路及脚本。
功能简介
本脚本的核心是通过oracle提供的sqldr加载数据。
关于sqldr用法详解参见官方文档:
链接: link.
通过运行该脚本,输入三个参数:1.表名 2.分隔符 3.入库文件名
oracle sqldr 中最麻烦的就是需要手工制作控制文件,该脚本最大的好处就是无需手工建立控制文件,自动生成控制文件。
用法
1.首先建立与文件字段对应的后台数据表。
2.把文件做好对应的分隔符,放入服务器中。
3.上传该脚本,改下对应的连接数据库SID,USER,PASSWORD.
4.运行该脚本:sh sqlload_data_file.sh tablename separative_sign file_name
代码如下:
#!/bin/sh
################################################################################
# SHELLNAME: sqlload_data_file.sh
# VERSION: V01.00.xxx
# AUTHOR: JIYU
# DATE:20161107 V01.00.000 JIYU
################################################################################
. ~/.bash_profile
progdir=/app/jy/shell #shell目录
ora_cfg=/app/jy/shell/db_cfg