sqlldr使用简介

来源:互联网 发布:淘宝站外推广方式 编辑:程序博客网 时间:2024/06/05 16:06
--------------------------------------------------------------------------------SQL*Loader: Release 11.2.0.1.0 - Production on 星期六 8月 4 12:54:31 2012 Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.  用法: SQLLDR keyword=value [,keyword=value,...] 有效的关键字:      userid -- ORACLE 用户名/口令           control -- 控制文件名                       log -- 日志文件名                           bad -- 错误文件名                         data -- 数据文件名                     discard -- 废弃文件名discardmax -- 允许废弃的文件的数目         (全部默认)      skip -- 要跳过的逻辑记录的数目  (默认 0)      load -- 要加载的逻辑记录的数目  (全部默认)    errors -- 允许的错误的数目         (默认 50)      rows -- 常规路径绑定数组中或直接路径保存数据间的行数               (默认: 常规路径 64, 所有直接路径)  bindsize -- 常规路径绑定数组的大小 (以字节计)  (默认 256000)    silent -- 运行过程中隐藏消息 (标题,反馈,错误,废弃,分区)    direct -- 使用直接路径                     (默认 FALSE)   parfile -- 参数文件: 包含参数说明的文件的名称  parallel -- 执行并行加载                    (默认 FALSE)      file -- 要从以下对象中分配区的文件     skip_unusable_indexes -- 不允许/允许使用无用的索引或索引分区  (默认 FALSE)skip_index_maintenance -- 没有维护索引, 将受到影响的索引标记为无用  (默认 FALSE)commit_discontinued -- 提交加载中断时已加载的行  (默认 FALSE)  readsize -- 读取缓冲区的大小               (默认 1048576)external_table -- 使用外部表进行加载; NOT_USED, GENERATE_ONLY, EXECUTE  (默认 NOT_USED)columnarrayrows -- 直接路径列数组的行数  (默认 5000)streamsize -- 直接路径流缓冲区的大小 (以字节计)  (默认 256000)multithreading -- 在直接路径中使用多线程 resumable -- 启用或禁用当前的可恢复会话  (默认 FALSE)resumable_name -- 有助于标识可恢复语句的文本字符串resumable_timeout -- RESUMABLE 的等待时间 (以秒计)  (默认 7200)date_cache -- 日期转换高速缓存的大小 (以条目计)  (默认 1000)no_index_errors -- 出现任何索引错误时中止加载  (默认 FALSE) PLEASE NOTE: 命令行参数可以由位置或关键字指定。前者的例子是 'sqlldrscott/tiger foo'; 后一种情况的一个示例是 'sqlldr control=foouserid=scott/tiger'。位置指定参数的时间必须早于但不可迟于由关键字指定的参数。例如,允许 'sqlldr scott/tiger control=foo logfile=log', 但是不允许 'sqlldr scott/tiger control=foo log', 即使参数 'log' 的位置正确。--------------------------------------------------------------------------------


**控制文件描述--------------------------------------------------------------------------------LOAD DATA INFILE 't.dat' // 要导入的文件 // INFILE 'tt.date' // 导入多个文件 // INFILE * // 要导入的内容就在control文件里 下面的BEGINDATA后面就是导入的内容, *和't.dat'不能同时存在INTO TABLE table_name // 指定装入的表 BADFILE 'c:bad.txt' // 指定坏文件地址 ************* 以下是4种装入表的方式 APPEND // 原先的表有数据 就加在后面 // INSERT // 装载空表 如果原先的表有数据 sqlloader会停止 默认值 // REPLACE // 原先的表有数据 原先的数据会全部删除 // TRUNCATE // 指定的内容和replace的相同 会用truncate语句删除现存数据 ************* 指定的TERMINATED可以在表的开头 也可在表的内部字段部分 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' // 装载这种数据: 10,lg,"""lg""","lg,lg" // 在表中结果: 10 lg "lg" lg,lg // TERMINATED BY X '09' // 以十六进制格式 '09' 表示的 // TERMINATED BY WRITESPACE // 装载这种数据: 10 lg lg // OPTIONALLY ENCLOSED BY '"' //表明每个字段可以用双引号括起TRAILING NULLCOLS ************* 表的字段没有对应的值时允许为空 ************* 下面是表的字段 ( col_1 , col_2 ,col_filler FILLER // FILLER 关键字 此列的数值不会被装载 // 如: lg,lg,not 结果 lg lg ) // 当没声明FIELDS TERMINATED BY ',' 时 // ( // col_1 [interger external] TERMINATED BY ',' , // col_2 [date "dd-mon-yyy"] TERMINATED BY ',' , // col_3 [char] TERMINATED BY ',' OPTIONALLY ENCLOSED BY 'lg' // ) // 当没声明FIELDS TERMINATED BY ','用位置告诉字段装载数据 // ( // col_1 position(1:2), // col_2 position(3:10), // col_3 position(*:16), // 这个字段的开始位置在前一字段的结束位置 // col_4 position(1:16), // col_5 position(3:10) char(8) // 指定字段的类型 // ) BEGINDATA // 对应开始的 INFILE * 要导入的内容就在control文件里 10,Sql,what 20,lg,show --------------------------------------------------------------------------------

**实际例子---------------------------------------------------------------------------------- Why do I receive "exceeds maximum length" in my log file?LOAD DATAINFILE *INTO TABLE DEPTFIELDS TERMINATED BY ','(DEPTNO, DNAME char(1000), LOC )BEGINDATA10,Sales,Virginia20,Accounting,Virginia30,Consulting,Virginia40,Finance more text more text more text more ... <repeated many times> ... more text,Virginia---------------------------------------------------------------- How Do I Load Delimited Data? quotes exampleLOAD DATAINFILE *INTO TABLE DEPTFIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'(DEPTNO, DNAME, LOC )BEGINDATA10,Sales,"Virginia,USA"20,Accounting,"Va, ""USA"""30,Consulting,Virginia40,Finance,Virginia---------------------------------------------------------------- How Do I Load Delimited Data? tabs exampleLOAD DATAINFILE *INTO TABLE DEPTREPLACEFIELDS TERMINATED BY WHITESPACE(DEPTNO, DNAME, LOC)BEGINDATA10SalesVirginia---------------------------------------------------------------- How Do I Load Delimited Data? X'09' exampleLOAD DATAINFILE *INTO TABLE DEPTREPLACEFIELDS TERMINATED BY X'09'(DEPTNO, DNAME, LOC )BEGINDATA10SalesVirginia---------------------------------------------------------------- How Do I Load Delimited Data? X'09' skip column exampleLOAD DATAINFILE *INTO TABLE DEPTREPLACEFIELDS TERMINATED BY x'09'(DEPTNO, dummy1 filler, DNAME, dummy2 filler, LOC)BEGINDATA10SalesVirginia---------------------------------------------------------------- How Do I Load Fixed Format Data?LOAD DATAINFILE *INTO TABLE DEPTREPLACE( DEPTNO position(1:2),  DNAME  position(3:16),  LOC    position(17:29))BEGINDATA10Accounting    Virginia,USA---------------------------------------------------------------- How Do I Load Fixed Format Data? with entire_line, relative offset, example 1LOAD DATAINFILE *INTO TABLE DEPTREPLACE( DEPTNO      position(1:2),  DNAME       position(*:16),  LOC         position(*:29),  ENTIRE_LINE position(1:29))BEGINDATA10Accounting    Virginia,USA---------------------------------------------------------------- How Do I Load Fixed Format Data? with entire_line, relative offset, example 2LOAD DATAINFILE *INTO TABLE DEPTREPLACE( DEPTNO      position(1) char(2),  DNAME       position(*) char(14),  LOC         position(*) char(13),  ENTIRE_LINE position(1) char(29))BEGINDATA10Accounting    Virginia,USA---------------------------------------------------------------- How Do I Load Dates?LOAD DATAINFILE *INTO TABLE DEPTREPLACEFIELDS TERMINATED BY ','(DEPTNO,  DNAME,  LOC,  LAST_UPDATED date 'dd/mm/yyyy')BEGINDATA10,Sales,Virginia,1/5/201420,Accounting,Virginia,21/6/201430,Consulting,Virginia,5/1/201340,Finance,Virginia,15/3/2014---------------------------------------------------------------- How Do I Load Data Using Functions?LOAD DATAINFILE *INTO TABLE DEPTREPLACEFIELDS TERMINATED BY ','(DEPTNO,  DNAME        "upper(:dname)",  LOC          "upper(:loc)",  LAST_UPDATED date 'dd/mm/yyyy')BEGINDATA10,Sales,Virginia,1/5/201420,Accounting,Virginia,21/6/201430,Consulting,Virginia,5/1/201340,Finance,Virginia,15/3/2014---------------------------------------------------------------- How Do I Load Data Using Functions?, using trailing nullcolsLOAD DATAINFILE *INTO TABLE DEPTREPLACEFIELDS TERMINATED BY ','TRAILING NULLCOLS(DEPTNO,  DNAME        "upper(:dname)",  LOC          "upper(:loc)",  LAST_UPDATED date 'dd/mm/yyyy',  ENTIRE_LINE  ":deptno||:dname||:loc||:last_updated")BEGINDATA10,Sales,Virginia,1/5/201420,Accounting,Virginia,21/6/201430,Consulting,Virginia,5/1/201340,Finance,Virginia,15/3/2014---------------------------------------------------------------- How Do I Load Data Using Functions?, CASE example LOAD DATAINFILE *INTO TABLE DEPTREPLACEFIELDS TERMINATED BY ','TRAILING NULLCOLS(DEPTNO,  DNAME        "upper(:dname)",  LOC          "upper(:loc)",  LAST_UPDATED"case when length(:last_updated) > 9 then to_date(:last_updated,'hh24:mi:ss dd/mm/yyyy') when instr(:last_updated,':') > 0 then to_date(:last_updated,'hh24:mi:ss') else to_date(:last_updated,'dd/mm/yyyy') end")BEGINDATA10,Sales,Virginia,12:03:03 17/10/201420,Accounting,Virginia,02:23:5430,Consulting,Virginia,01:24:00 21/10/201440,Finance,Virginia,17/8/2014---------------------------------------------------------------- How Do I Load Data with Embedded Newlines? Use a Character Other Than a NewlineLOAD DATAINFILE *INTO TABLE DEPTREPLACEFIELDS TERMINATED BY ','TRAILING NULLCOLS(DEPTNO,  DNAME        "upper(:dname)",  LOC          "upper(:loc)",  COMMENTS     "replace(:comments,'\\n',chr(10))")BEGINDATA10,Sales,Virginia,This is the Sales\nOffice in Virginia20,Accounting,Virginia,This is the Accounting\nOffice in Virginia30,Consulting,Virginia,This is the Consulting\nOffice in Virginia40,Finance,Virginia,This is the Finance\nOffice in Virginia---------------------------------------------------------------- How Do I Load Data with Embedded Newlines? Use the FIX Attribute LOAD DATAINFILE demo.dat "fix 80"INTO TABLE DEPTREPLACEFIELDS TERMINATED BY ','TRAILING NULLCOLS(DEPTNO,  DNAME        "upper(:dname)",  LOC          "upper(:loc)",  COMMENTS)---------------------------------------------------------------- How Do I Load Data with Embedded Newlines? Use the VAR Attribute LOAD DATAINFILE demo.dat "var 3"INTO TABLE DEPTREPLACEFIELDS TERMINATED BY ','TRAILING NULLCOLS(DEPTNO,  DNAME        "upper(:dname)",  LOC          "upper(:loc)",  COMMENTS)---------------------------------------------------------------- How Do I Load Data with Embedded Newlines? Use the STR AttributeLOAD DATAINFILE demo.dat "str X'7C0A'"INTO TABLE DEPTREPLACEFIELDS TERMINATED BY ','TRAILING NULLCOLS(DEPTNO,  DNAME        "upper(:dname)",  LOC          "upper(:loc)",  COMMENTS)---------------------------------------------------------------- Loading LOB Data via SQLLDR, Loading LOB Data That Is InlineLOAD DATAINFILE demo.dat "str X'7C0A'"INTO TABLE DEPTREPLACEFIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'TRAILING NULLCOLS(DEPTNO,  DNAME        "upper(:dname)",  LOC          "upper(:loc)",  COMMENTS     char(1000000))--------------------------------------------------------------create table lob_demo  ( owner      varchar2(255),    time_stamp date,    filename   varchar2(255),    data       blob)/-- Loading LOB Data via SQLLDR, Loading LOB Data That Is Out of LineLOAD DATAINFILE *REPLACEINTO TABLE LOB_DEMO( owner       position(14:19),  time_stamp  position(30:41) date "Mon DD HH24:MI",  filename    position(43:100),  data        LOBFILE(filename) TERMINATED BY EOF)BEGINDATA-rwxr-xr-x 1 oracle dba 14889 Jul 22 22:01 demo1.log_xt-rwxr-xr-x 1 oracle dba   123 Jul 22 20:07 demo2.ctl-rwxr-xr-x 1 oracle dba   712 Jul 23 12:11 demo.bad-rwxr-xr-x 1 oracle dba  8136 Mar  9 12:36 demo.control_files-rwxr-xr-x 1 oracle dba   825 Jul 23 12:26 demo.ctl-rwxr-xr-x 1 oracle dba  1681 Jul 23 12:26 demo.log-rw-r----- 1 oracle dba   118 Jul 23 12:52 dl.sql-rwxr-xr-x 1 oracle dba   127 Jul 23 12:05 lob_demo.sql-rwxr-xr-x 1 oracle dba   171 Mar 10 13:53 p.bsh-rwxr-xr-x 1 oracle dba   327 Mar 10 11:10 prime.bsh-rwxr-xr-x 1 oracle dba    24 Mar  6 12:09 run_df.sh---------------------------------------------------------------- Loading LOB Data via SQLLDR, Loading LOB Data into Object Columns--------------------------------------------------------------LOAD DATAINFILE *INTO TABLE image_loadREPLACEFIELDS TERMINATED BY ','( ID,  NAME,  file_name FILLER,  IMAGE column object  (    SOURCE column object    (      LOCALDATA LOBFILE (file_name) TERMINATED BY EOF                NULLIF file_name = 'NONE'    )  ))BEGINDATA1,icons,icons.gif--------------------------------------------------------------------------------

--参考来源《Oracle编程艺术深入理解数据库体系结构(第三版)》

原创粉丝点击