大文本导入mysql_大文本数据,导入导出到数据库

本文介绍了两种高效导入240w条大文本数据到MySQL的方法:使用SQL*Loader和创建外部表。通过设置控制文件和字符集,避免了数据丢失和乱码问题。同时,展示了如何将数据导出为文本文件。
摘要由CSDN通过智能技术生成

大文本数据,导入到数据库

240w的数据,利用plsql的文本导入器,导了一个半小时,且数据出现缺失。

两种方式导入到数据库

一,使用sql load

创建表

create table ext_gv_tmp_amazon_sku

(

skucode varchar2(255 char),

eancode varchar2(255 char)

)

配置控制文件

more  input.ctl

load data

infile input.txt

badfile  t.bad

discardfile t.dsc

append into table ext_gv_tmp_amazon_sku   ----导入的表

fields terminated by "|"     ---分割符

trailing nullcols      ---允许列有空值

(skucode,eancode)      ---导入的字段

导入命令

先设置导入客户端字符集,不然中文会乱码

export NLS_LANG=AMERICAN_AMERICA.UTF8

同时看看系统的字符集是否设置正确

[oracle@rac-test1 pandump]$ cat /etc/sysconfig/i18n

LANG="en_US.UTF-8"

SYSFONT="latarcyrheb-sun16"

最后导入数据

[oracle@rac-test1 pandump]$ sqlldr panhf/oracle control=input.ctl

SQL> select count(*) from ext_gv_tmp_amazon_sku;

COUNT(*)

----------

2409530

二,使用外部表

利用外部表的方式来导入数据

1,创建oracle目录,并授权给相关账号

CREATE OR REPLACE DIRECTORY pandump

AS '/oradata/pandump';

grant read,write on DIRECTORY pandump to panhf;

2,创建外部表,注意这里的字符集设置,如果不设置中文会无法读取导致数据丢失

create table ext_gv_tmp_amazon_sku

(

skucode varchar2(255 char),

eancode varchar2(255 char)

)

organization external (

type oracle_loader

default directory pandump

access parameters

(

records delimited by newline

logfile pandump:'ext_gv_tmp_amazon_sku.log'

badfile pandump:'ext_gv_tmp_amazon_sku.bad'

discardfile pandump:'ext_gv_tmp_amazon_sku.disc'

characterset 'AL32UTF8'

fields terminated by "|" lrtrim

missing field values are null

(

skucode,

eancode

)

)

location ('ext_ids_1.txt')

)

reject limit unlimited

/

3,将数据cts的方式拷贝到另外的表

select count(*) from ext_gv_tmp_amazon_sku;

COUNT(*)

----------

2409530

create table panhf.ext_gv_tmp_amazon_sku as select * from ext_gv_tmp_amazon_sku;

Table created.

三,数据导出文本

cat  exp.sql

set echo off

set feedback off

set newpage none

set verify off

set pagesize 0

set term off

set trims on

set linesize 600

set heading off

set timing off

set numwidth 40

spool /home/oracle/empInfor.txt

select  skucode||'|'||eancode  from panhf.ext_gv_tmp_amazon_sku;

spool off

执行脚本

@exp.sql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值