当前位置:   article > 正文

大数据量的情况下怎么将数据导入到oracle数据库?_200g文本导入oracle数据库需要多长时间

200g文本导入oracle数据库需要多长时间

前言:大数据量的情况下,导入csv文件内容到数据库会很慢,为了节省宝贵的测试时间,需要寻找工具来提高数据导入效率,效率提高工具:sqlload(可将上亿条数据,几分钟内全部导入到oracle数据库,效率非常高)

使用说明:
1、在目标数据库创建导入的表(比如:10.9.215.240 oracle数据库中填写临时表)

CREATE TABLE YG_IS.TEMP
(
    order_time date,
    pay_time date,
    inflow_time date,
    order_no VARCHAR2(255),
    out_order_no VARCHAR2(255),
    warehouse_code VARCHAR2(255),
    merchant_code VARCHAR2(255),
    business_subject VARCHAR2(255),
    order_status VARCHAR2(255),
    shop_name VARCHAR2(255),
    order_type VARCHAR2(255)
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

2、在部署oracle的服务器上编写sqlload配置文件

vim /data/soft/test.ctl
  • 1

配置文件内容如下:

load data
characterset AL32UTF8
infile '/home/oracle/sql_load/test.csv'   # CSV文件路径可以指定多个
replace into table YG_IS.TEMP   #删除旧记录(用 delete from table 语句),替换成新装载的记录
fields terminated by ',' #数据中每行记录用 "," 分隔
Optionally enclosed by '"' #数据中每个字段用 '"' 框起,比如字段中有 "," 分隔符时
trailing nullcols #表的字段没有对应的值时允许为空(就是说,如果要导入的字段在这里没有填写,那么它就是null,填写后才会导入该值)
(
order_time date "DD/MM/YYYY HH24:MI:SS",
pay_time date "DD/MM/YYYY HH24:MI:SS",
inflow_time date "DD/MM/YYYY HH24:MI:SS",
order_no ,
out_order_no ,
warehouse_code ,
merchant_code ,
business_subject ,
order_status ,
shop_name ,
order_type
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

3、在oracle用户下,执行命令:
进入oracle用户方法:su - oracle
然后执行:sqlldr \'/ as sysdba\' control=/data/soft/sqlload/test.ctl log=test.log;

4、注意事项:
a.导入的数据必须为csv或者为txt格式
b.导入的csv文件的编码格式需要设置成utf-8,否则导入后会出现乱码
c.ctl文件中, into table 的时候,一定要在表名前面加用户名名称,例如:yg_is.temp

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/606809
推荐阅读
相关标签
  

闽ICP备14008679号