【Oracle】使用sqlldr命令行从csv文件获得数据导入Oracle数据库某表中

【将要塞入数据的表】

create table emp_test(
    id number(12),
    name nvarchar2(10),
    age number(3)
)

【准备进表的csv文件内容】

1,andy,23
2,bill,24
3,cindy,25
4,douglas,26

【ctl文件内容】

options(skip=0,BINDSIZE=20971520, ROWS=10000, READSIZE=20971520, ERRORS=999999999)
load data
infile 'c:\temp\emp_test.csv'
insert into table "EMP_TEST"
fields terminated by ','  
Optionally enclosed by '\''  
(id,name,age)

【命令】

打开dos窗口,进入c:\temp目录输入以下命令:

sqlldr userid=luna/1234@127.0.0.1:1521/orcl control=loaddata.ctl

【运行结果】

C:\temp>sqlldr userid=luna/1234@127.0.0.1:1521/orcl control=loaddata.ctl

SQL*Loader: Release 11.2.0.1.0 - Production on 星期五 3月 18 14:16:18 2022

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

达到提交点 - 逻辑记录计数 3
达到提交点 - 逻辑记录计数 4

C:\temp>

【数据库状况】

SQL> create table emp_test(
  2      id number(12),
  3      name nvarchar2(10),
  4      age number(3)
  5  );

表已创建。

SQL> select * from emp_test;

        ID NAME                        AGE
---------- -------------------- ----------
         1 andy                         23
         2 bill                         24
         3 cindy                        25
         4 douglas                      26

SQL>

 【速度评测】

三字段的表插入千万数据,约1-2分钟;

十个字段的表(id:long,其它nvarchar2)插入千万数据,约用7-8分钟。

这个速度比网络传输约快一倍。

 

【参考资料】:

1.https://blog.csdn.net/bugzeroman/article/details/103031317

2.https://blog.51cto.com/daid110/1924647

END

posted @ 2022-03-18 14:35  逆火狂飙  阅读(223)  评论(2编辑  收藏  举报
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东