oracle数据库使用sqlldr命令导入txt数据

oracle数据库使用sqlldr命令导入数据分为以下几步:

1. 准备工作:建立表空间,并在表空间内建立相应的表格。
    数据库、表空间与表的关系:Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。
    建立表空间的语句:
CREATE TABLESPACE TABLESPACE_NAME
DATAFILE 'F:/records/TABLESPACE_NAME.dbf'
SIZE 8G  AUTOEXTEND ON NEXT 2G
MAXSIZE UNLIMITED;

    建立表的语句:
CREATE TABLE TABLE_NAME
(
  ID CHAR(10 BYTE)
  NAME CHAR(20 BYTE)
  ADDRESS CHAR(20 BYTE)
  PHONE_NUMBER CHAR(20 BYTE)
)

2. 准备数据导入的控制文件.ctl文件

ctl文件的格式:
load file
infile 'f:/records/data/data01.txt'  #此处表示一次向同一个表中输入不止一个txt文件
infile 'f:/records/data/data02.txt'
infile 'f:/records/data/data03.txt'
APPENDED INTO TABLE TABLE_NAME
 FIELDS TERMINATED BY ','       #表示分隔符为逗号
TRAILING NULLCOLS                 #允许跳过空白列
(ID, NAME, ADDRESS, PHONE_NUMBER) 

3. 在命令行使用sqlldr命令导入数据

sqlldr username/password@instancename control=F:/RECORDS/input.ctl log=F:/records/input.log errors=10000 direct=y

执行完后数据即导入成功。


几点注意事项:
1. 建表需要命令sqlplus /@实例名 as sysdba登陆,然后使用命令@f:/xxxx/xxxx.sql执行内含建表语句的sql文件建表,建完表需要输入exit退出(原因是……这一步容易被忽略),再执行导入数据的"sqlldr 用户名/密码@实例名 control=F:/xxxx/xxxx.ctl log=F:/xxxx/xxxx.log errors=100000000 direct=y parallel=y"语句。
2. 如果某个txt数据文件记录数过大,会出现错误提示,这个问题有两个方法可以解决:
   1)增大sqlldr的值: sqlldr默认的readsize为1048576(10M ),最大可设置为20M,设置方法:在ctl文件最开头输入         options(size=2097152)。
   2)使用txt切割工具将超出大小的txt切割成数份。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值