for f in ~/*.txt
do
mysql -e "LOAD DATA INFILE ’"$f"’ INTO TABLE tablename FIELDS TERMINATED BY ’,’ LINES
TERMINATED BY ’\r\n’" -u username --password=***** databasename
done
Oracle数据库导入csv文件,当csv文件较小时,
可以使用数据库管理工具,
比如DBevaer导入到数据库,
当csv文件很大时,
可以使用Oracle提供的sqlldr命令行工具,
能够快速导入大量数据。
在数据库之间进行数据迁移时,
特别是不同类型的数据库,
使用csv文件是一种很好的选择。
2.sqlldr用法
下面介绍sqlldr用法,
有一个USER_INFO.csv文件,
需要导入到数据库中USER_INFO表,
而且有1.5亿条数据,
要求导入耗时尽量小。
这里先介绍基本的导入方式,
然后介绍direct导入方式,
最后介绍parallel导入方式。
3.获取csv文件
USER_INFO.csv文件内容如下,
这里仅选取了三条测试数据:
MSISDN,PROVINCE_CODE,CREATE_TIME
8617512570551,30,2019-10-31 17:16:09
8613063310680,33,2019-10-31 17:16:12
8613295281345,80,2019-10-31 17:16:14
4.创建USER_INFO表
CREATE TABLE "USER_INFO" (
"MSISDN" VARCHAR2(16),
"PROVINCE_CODE" VARCHAR2(4),
"CREATE_TIME" DATE,
CONSTRAINT "PK_USER_INFO_MSISDN" PRIMARY KEY ("MSISDN")
) TABLESPACE "USERS"
COMMENT ON COLUMN "USER_INFO"."MSISDN" IS '用户手机号'
COMMENT ON COLUMN "USER_INFO"."PROVINCE_CODE" IS '省份编码'
COMMENT ON COLUMN "USER_INFO"."CREATE_TIME" IS '用户创建时间'
注意表中字段要和csv文件对应。
5.创建ctl文件
创建名为loaddata_USER_INFO.ctl的控制文件:
options(skip=1,BINDSIZE=20971520, ROWS=10000, READSIZE=20971520, ERRORS=999999999)
load data
in
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)