文档章节

oracle sqlloader使用

William
 William
发布于 2013/02/05 14:32
字数 409
阅读 323
收藏 1
控制文件:
UNRECOVERABLE --相当于设置表nologging
LOAD DATA
INFILE 'e:\TEST_PARTITION.dat'
BADFILE 'e:\TEST_PARTITION.bad'
DISCARDFILE 'e:\TEST_PARTITION.dsc'
APPEND --insert(defualt), APPEND(= append into table table_name ,指定parallel = true时必须是append),replace(=truncate)
INTO TABLE TEST_PARTITION 
FIELDS TERMINATED BY ',' --
OPTIONALLY ENCLOSED BY '"' --
TRAILING NULLCOLS --表的字段没有对应的值时允许为空
(
  ID integer external ,
  BIZ_CODE  char ,
  USER_ID  integer external  NULLIF USER_ID = BLANKS ,
  CREATE_DATE  DATE "yyyy-mm-dd hh24:mi:ss" NULLIF CREATE_DATE = "SYSDATE",
  UPDATE_DATE  DATE "yyyy-mm-dd hh24:mi:ss" NULLIF UPDATE_DATE = "SYSDATE",
  STATUS integer external  NULLIF STATUS = BLANKS ,
  TOTAL_AMOUNT  integer external  NULLIF TOTAL_AMOUNT = BLANKS ,
  DISCOUNT_AMOUNT  integer external  NULLIF DISCOUNT_AMOUNT = BLANKS ,
  TOTAL_POINTS  integer external  NULLIF TOTAL_POINTS = BLANKS ,
  DELETE_DATE  DATE "yyyy-mm-dd hh24:mi:ss" NULLIF DELETE_DATE = "SYSDATE" ,
  PAY_COUNT  integer external  NULLIF PAY_COUNT = BLANKS ,
  IP  char  NULLIF IP = '127.0.0.1' ,
  PAYMENT_ID  integer external  NULLIF PAYMENT_ID = BLANKS ,
  EMALL_SITE_ID  integer external  NULLIF EMALL_SITE_ID = BLANKS ,
  NOTIFY_FREQ  integer external  NULLIF NOTIFY_FREQ = BLANKS ,
  RANDOM_CODE  char NULLIF RANDOM_CODE = BLANKS
)
命令下执行:
sqlldr dev/root1234@xe control=e:/sqlldr.ctl log=e:/sqlldr.log errors=20000 direct=true parallel=true
或者:sqlldr dev/root1234@xe control=e:/sqlldr.ctl log=e:/sqlldr.log errors=20000 external_table=EXECUTE

直接加载有显著的性能提高(不会产生log),前者使用直接路径(不会触发触发器,直接把sga中的脏数据刷新到磁盘)加载,后者使用外部表(默认并行执行),为了提高性能,可以调整sqlldr的  READSIZE STREAMSIZE COLUMNARRAYROWS参数。注意的地方:

1、使用直接路径(direct=true)有一定的限制,有索引的表是不允许这样做的,选项UNRECOVERABLE同理

2、导入完成后校验数据,因为sqlldr没有trim空格

3、使用了direct=true直接路径),则不能使用insert

4、给有索引的表加载数据完成操作后,为了提高性能可以考虑重建索引


请参考详细资料:oracle数据导入之SQLLoader

http://docs.oracle.com/cd/B10500_01/server.920/a96652/part2.htm

© 著作权归作者所有

William
粉丝 8
博文 26
码字总数 7874
作品 0
浦东
程序员
私信 提问
Oracle中的sql loader

oracle 的sql loader用来将操作系统上的数据文件中的内容加载到oracle数据库中. 要使用sql loader,需要先创建一个控制文件,里面告诉sql loader在启动了sql loader之后的加载数据的策略. 新建...

早安_南京
2015/01/01
87
0
BeetlSQL 2.9.2 发布,Java Dao 工具

BeetlSQL 2.9.2已发布,本次发布主要增强了对JDK8 Parameter特性支持。并且内部重构了Mapper实现和SqlLoader实现。 #IE88P JDK8 Parameter 支持 将调用如下markdown文件 JDK8 以上不再需要@...

闲大赋
2017/08/04
1K
8
ORACLE---对象的管理

对象管理 一、表 1.堆表: 2.索引组织表: 表数据和索引数据都放到索引段中 用到表的数据量很大,将表数据和索引数据放到同一个索引段中,只需要扫描一个段就可以取出数据,减少块的读取 索引...

柳白子
2016/12/09
13
0
sql loader的基础用法。

301项目中遇到一个问题,医院的排班信息文件原则上是每月月底更新,但在试投产期间需要不定时导入。 项目中spring管理的任务调度很不灵活,因为每次修改都要重启服务器。 所以暂时采取使用s...

biGpython
2011/07/30
149
0
31、最简单的mvc框架tiny,增加Ioc,jdbc工具类(1个类),连接池(1个类)

Ioc 按照mvc,我们需要把tiny分成3层,其中视图(Renderer抽象类)和Action我们已经在前面实现了,这次我们用最少的代码实现Model。 model沿用Action的想法,用户自定义类,类名必须以Model...

青青小树
2014/04/11
792
3

没有更多内容

加载失败,请刷新页面

加载更多

rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
5
0
简述TCP的流量控制与拥塞控制

1. TCP流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收。 原理是通过确认报文中窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出窗口大小。...

鏡花水月
今天
10
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
1K
11
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部