【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