近期由于工作的需要(将一个csv文件导入到oracle数据库中的临时表),研究了下sql*locader的安装及使用,对于安装工作是个比较头痛的问题,因为很多的版本中是没有sql*loade的,网上有说是精简版本的原因(个人不太赞同,因为你到官网去下载的时候有的版本就没有提供sql*loade的安装包),花费了些时间,故此处进行总结:
1.sqlloader的安装下载
1.1 可以查看客户端与服务端的匹配矩阵然后选择你需要下载的且有sqlloader的client版本
下载地址:https://www.oracle.com/cn/database/technologies/instant-client/downloads.html

1.2 在linux下的安装步骤(此处为下载后手动安装的将base包和sqlplus及sqlloadr放到一个zip包中),也可以用yum 安装具体的可参考上述连接中的文档,手动安装步骤如下:(在wind下的安装就比较简单了,下载包后直接执行exe文件即可)
unzip instantclient_12_2.zip
rm -rf instantclient_12_2.zip
--设置系统环境变量
vi /etc/profile
echo export ORACLE_HOME=/home/oracleClient/instantclient_12_2 >>/etc/profile
echo export LD_LIBRARY_PATH=/home/oracleClient/instantclient_12_2/lib >>/etc/profile
--为sqlldr/sqlplus修改执行权限(4+2+1 read/write/execute)
chmod 777 /home/oracleClient/instantclient_12_2/lib/sqlldr
chmod 777 /home/oracleClient/instantclient_12_2/lib/sqlplus
--设置一个软连接
ln -s /home/oracleClient/instantclient_12_2/lib/sqlplus /usr/bin
ln -s /home/oracleClient/instantclient_12_2/lib/sqlldr /usr/bin。
1.3 sqlplus及sql*loader的常用命令
sqlplus ${username}/${passw}@${ip}:${port}/${server name} @database/createTempTable.sql ---@da
sqlldr userid=${username}/${passw}@${ip}:${port}/${server name} control=import.ctl log=log.log data=5023_2.csv bad=log.csv.bad
import.ctl为控制文件demo如下:
options (skip = 1,rows = 100) --跳过第一行一般有表头,每100行提交一次 LOAD DATA APPEND |