Linux下Oracle大批量文件导入:通过ctl文件load data
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
1.概述
通过plsql导入txt或者csv等文件,存在诸多限制:无法导入巨大数据量的文件(如G以上文件);导入效率低下。
实际工作汇中,Oracle存在与服务器上,服务器基本是Linux操作系统,如下我们将介绍如何通过在linux环境中通过ctl文件load data。
2.具体步骤
2.1找到tnsnames.ora文件并查看服务名
第一步是找到服务器中Oracle的tnsnames.ora文件。并查看其服务名service_name.
如
路径:
/data/oracle/product/11.2.0.4/db_1/network/admin
服务名:
可以看到服务名service_name为jsdxkf
2.2上传数据
将我们需要上传的数据放置到服务器,并解压
2.3创建测试文件
如果直接导入真实数据,数据量过大,不利于测试。我们可以创建一个很小的测试数据:
如下,我们取出前十条数据,并作为test文件
head output.csv -n 10 > test.csv
2.4创建ctl文件
这一步骤是最为重要的步骤。
我们在test所在的路径下,创建一个ctl文件,文件内容:
load data
infile '/data/test.csv'
append into table kf_session
fields terminated by ','
( session_id ,
flag,
line_num,
content char(4000)
)
解释:
infile:导入文件
append replace 也可以换位append into,一个是追加,一个是替换。
kf_session是要导入的表名。
‘,’是分隔符。
这里的char(4000)需要特别注意:
ctl中规定,字段超过256字节需要在ctl中写明字段类型长度。如果不指定,或报错,如下:
记录 243: 被拒绝 - 表 KF_SESSION 的列 CONTENT 出现错误。
数据文件的字段超出最大长度
记录 244: 被拒绝 - 表 KF_SESSION 的列 CONTENT 出现错误。
数据文件的字段超出最大长度
记录 1278: 被拒绝 - 表 KF_SESSION 的列 CONTENT 出现错误。
数据文件的字段超出最大长度
记录 1485: 被拒绝 - 表 KF_SESSION 的列 CONTENT 出现错误。
2.5执行
首先到文件所在路径,即infile所在路径,执行一下语句:
sqlldr jsdxkf/db4JSDX-KFznfx@jsdxkf control=a.ctl log=a.log
如果权限不足,请切换相关Oracle用户。
sudo - oracle
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献5条内容
所有评论(0)