最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

sqlldr批量导入导出数据测试

来源:动视网 责编:小采 时间:2020-11-09 12:36:42
文档

sqlldr批量导入导出数据测试

sqlldr批量导入导出数据测试:sqlldr是在处理大数据量的操作中建议采用的方式,它有许多性能想关的开关,能最大程度的减少redo,undo的生成,控制数据的处理方式 sqlldr是在处理大数据量的操作中建议采用的方式,它有许多性能想关的开关,能最大程度的减少redo,undo的生成,控制数
推荐度:
导读sqlldr批量导入导出数据测试:sqlldr是在处理大数据量的操作中建议采用的方式,它有许多性能想关的开关,能最大程度的减少redo,undo的生成,控制数据的处理方式 sqlldr是在处理大数据量的操作中建议采用的方式,它有许多性能想关的开关,能最大程度的减少redo,undo的生成,控制数


sqlldr是在处理大数据量的操作中建议采用的方式,它有许多性能想关的开关,能最大程度的减少redo,undo的生成,控制数据的处理方式

sqlldr是在处理大数据量的操作中建议采用的方式,它有许多性能想关的开关,能最大程度的减少redo,undo的生成,控制数据的处理方式(insert,append,replace,truncate)

因为项目需要,对比datapump性能还是不理想,所以还是希望采用sqlldr来做。个人做了简单的测试。

根据thomas kyte的介绍,并行执行路径加载时最快的方式,能够直接写只格式化的数据块,最大限度的减少redo,undo的生成。

Linux环境下sqlldr一个csv文件

sqlldr加载文件,ORA-01722: invalid number解决

Oracle sqlldr导入以回车和回车换行字符结尾的文本

sqlldr 导入乱码 Oracle客户端字符集问题

Oracle sqlldr导入数据使用默认值和提高性能的方法

先写了如下的脚本。可以动态的从某个用户的表中生成元数据。

sqlplus -s $1 < set pages 0
col object_name format a30
set linseize 10000
set feedback off
set colsep ','
spool $2.lst
select *from $2 ;
spool off;
EOF

运行后生成的数据大体如下。
[ora11g@rac1 sqlldr]$ ksh spooldata.sh n1/n1 t
370753, 10205,KU$_DOMIDX_OBJNUM_VIEW ,VIEW
370754, 10207,KU$_OPTION_OBJNUM_T ,TYPE
370755, 10208,KU$_EXPREG ,VIEW
370756, 10210,SYS_YOID0000010209$ ,TYPE
370757, 10209,KU$_OPTION_OBJNUM_VIEW ,VIEW
370758, 10211,KU$_OPTION_VIEW_OBJNUM_VIEW ,VIEW
370759, 10212,KU$_MARKER_T ,TYPE
370760, 10214,SYS_YOID0000010213$ ,TYPE
370761, 10213,KU$_MARKER_VIEW ,VIEW
370762, 10215,KU$_TABPROP_VIEW ,VIEW
370763, 10216,KU$_PFHTABPROP_VIEW ,VIEW
370764, 10217,KU$_REFPARTTABPROP_VIEW ,VIEW
370765, 10218,KU$_MVPROP_VIEW ,VIEW
370766, 10219,KU$_MVLPROP_VIEW ,VIEW
370767, 10220,KU$_TTS_VIEW ,VIEW
370768, 10221,KU$_TAB_TS_VIEW ,VIEW
370769, 10222,KU$_TTS_IND_VIEW ,VIEW
370770, 10223,KU$_IND_TS_VIEW ,VIEW
370771, 10224,KU$_CLU_TS_VIEW ,VIEW

然后准备控制文件 sqlldr.ctl,把数据从t加载到tt里面去。
load data
into table tt
fields terminated by ','
(id,object_id,object_name,object_type)

尝试导入:
[ora11g@rac1 sqlldr]$ sqlldr n1/n1 control=sqlldr.ctl data=t.lst
SQL*Loader: Release 11.2.0.3.0 - Production on Tue May 27 08:09:25 2014
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
但是没有任何的反馈。
查看自动生成的sqlldr.log
里面有如下的错误。

Column Name Position Len Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
ID FIRST * , CHARACTER
OBJECT_ID NEXT * , CHARACTER
OBJECT_NAME NEXT * , CHARACTER
OBJECT_TYPE NEXT * , CHARACTER

Record 1: Rejected - Error on table TT, column OBJECT_TYPE.
Field in data file exceeds maximum length
Record 2: Rejected - Error on table TT, column OBJECT_TYPE.
Field in data file exceeds maximum length
Record 3: Rejected - Error on table TT, column OBJECT_TYPE.
Field in data file exceeds maximum length
Record 4: Rejected - Error on table TT, column OBJECT_TYPE.
Field in data file exceeds maximum length

尝试了好一会儿,最终发现时set linesize的时候长度设置的比较大,在根据逗号','来解析的时候,最后一个字段的长度就包含了剩余的空格,最终加载的时候就会发现它的长度太大了。已经超出了表定义的长度。
这种情况,我总不能一个一个指定长度吧。
这时候想到trimspool的功能,尝试果然奏效。
spooldata.sh的脚本内容如下:
sqlplus -s $1 < set pages 0
col object_name format a30
set linesize 10000
set trimspool on
set feedback off
set colsep ','
spool $2.lst
select *from $2 where rownum<20 ;
spool off;
EOF

文档

sqlldr批量导入导出数据测试

sqlldr批量导入导出数据测试:sqlldr是在处理大数据量的操作中建议采用的方式,它有许多性能想关的开关,能最大程度的减少redo,undo的生成,控制数据的处理方式 sqlldr是在处理大数据量的操作中建议采用的方式,它有许多性能想关的开关,能最大程度的减少redo,undo的生成,控制数
推荐度:
标签: 生成 数据 导入
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top