sqlldr学习日记

sqlldr作为oracle自带的数据导入工具,在对规则数据导入能提供较好的功能;

功能使用:

windows平台下,命令:
sqlldr userid=user/password@SID control=loader.ctl log=loade.log bad=loader.bad

其中log为日志文件,bad为错误数据文件,可以不显示注明,默认会生成在当前目录下,同样control文件路径不注明则也会在命令所在目录下生成文件。

关键在于书写控制文件内容;格式如下:

OPTIONS  -- sqlldr 命令显示的选项可以写到控制文件中,skip=1 用来跳过数据中的第一行,rows=128表示128行提交一次,默认为64;

rows —— 加载的行数,默认值:常规路劲:64,直接路径:全部。常规路径导入时,指定绑定数组中的行数。直接路径导入时,指一次从数据文件只读取的行数。该参数同 时受bindsize制约,如果rows每行实际占用大小超出bindsize的最大可用值,则rows自动降低到bindsize最大可用值。

 

OPTIONS (skip=1,rows=128)
load data            
infile  'E:\ldr\ldr.csv'
append into table lp_ldr
fields terminated by ","
Optionally enclosed by '"'
(OWNER,
  OBJECT_NAME,
  SUBOBJECT_NAME,
  OBJECT_ID      INTEGER EXTERNAL,
  DATA_OBJECT_ID INTEGER EXTERNAL,
  OBJECT_TYPE,
  CREATED        DATE "YYYY-MM-DD HH24:MI:SS",
  LAST_DDL_TIME  DATE "YYYY-MM-DD HH24:MI:SS",
  TIMESTAMP,
  STATUS,
  TEMPORARY,
  GENERATED,
  SECONDARY,
  NAMESPACE,
  EDITION_NAME
)

 

在列中定义数据类型时大概的意思是不识别,感觉很奇怪怎么识别不了number类型,查了下文档原来sqlldr有自己的数据类型,例如整数类型是INTEGER EXTERNAL,字符类型是CHAR
常见的数据类型:
CHAR  字符类型可以描述数据中的VARCHAR2 或 CHAR 列
DATE   日期类型可以描述数据库的DATE列
INTEGER EXTERNAL 整数类型
FLOAT EXTERNAL 浮点类型
DECIMAL EXTERNAL 小数

posted on 2015-11-25 11:19  雨月  阅读(535)  评论(0)    收藏  举报

导航