sql loader 参数详解

sql loader 参数详解
Sqlldr
        sql loader可以把一些以文本格式存放的数据顺利地导入到oracle数据库中,它是一种在不同数据库之间进行数据迁移非常方便而且通用的工具。缺点就是速度比较慢,另外对blob等类型的数据就有点麻烦了。
一、用法SQLLDR keyword=value [,keyword=value,...]
二、有效的关键字:
    userid -- ORACLE username/password
    control – 控制文件
    log – 记录的日志文件
    bad – 坏数据文件
    data – 数据文件
    discard – 丢弃的数据文件
    discardmax – 允许丢弃数据的最大值         (全部默认)
    skip -- Number of logical records to skip   (默认0)
    load -- Number of logical records to load   (全部默认)
    errors – 允许的错误记录数           (默认50)
    rows -- Number of rows in conventional path bind array or between direct path data saves(每次提交的记录数,默认: 常规路径 64, 所有直接路径)
    bindsize -- Size of conventional path bind array in bytes(默认256000)
每次提交记录的缓冲区的大小(字节为单位,默认256000)
     silent --禁止输出信息 (header,feedback,errors,discards,partitions)
     direct – 使用直通路径方式导入                     (默认FALSE)
     parfile -- parameter file: name of file that contains parameter specifications
     parallel -- 并行导入                    (默认FALSE)
     file -- File to allocate extents from
     skip_unusable_indexes     -- disallow/allow unusable indexes or index partitions(默认FALSE)
     skip_index_maintenance    -- do not maintain indexes, mark affected indexes as unusable(默认FALSE)
     readsize -- Size of Read buffer                 (默认1048576)
     与bindsize成对使用,其中较小者会自动调整到较大者。sqlldr先计算单条记录长度,乘以rows,如小于bindsize,不会试图扩张rows以填充bindsize;如超出,则以bindsize为准。
      external_table        -- use external table for load;  NOT_USEDGENERATE_ONLYEXECUTE(默认NOT_USED)
      columnarrayrows      -- Number of rows for direct path column array(默认5000)
      streamsize         -- Size of direct path stream buffer in bytes(默认256000)
      multithreading        -- use multithreading in direct path
      resumable -- enable or disable resumable for current session(默认FALSE)
      resumable_name        -- text string to help identify resumable statement
      resumable_timeout        -- wait time (in seconds) for RESUMABLE(默认7200)
      date_cache -- size (in entries) of date conversion cache(默认1000)
      注意:有两种方式可以指定命令行参数:通过 位置或者通过 关键字。
      (1)通过位置指定命令行参数的例子:'sqlldr scott/tiger foo';
     (2)通过关键字指定命令行参数的例子:'sqlldr control=foo userid=scott/tiger';
      不能前面使用关键字指定后面通过位置指定的混合方式;
      比如: 'sqlldr scott/tiger control=foo logfile=log' 是允许的;
      但 'sqlldr scott/tiger control=foo log'不允许。
      通过位置指定命令行参数的时候,必须将“位置”放在user/passwd之前。
      为清楚起见最好所有命令行参数都用关键字指定。
三、控制文件:一个控制命令的脚本文件,通常以 ctl结尾,内容如下:
LOAD DATA
INFILE 't.dat'               //要导入的文件
// INFILE 'tt.date'         //导入多个文件
// INFILE *                   //表示要导入的内容就在control文件里 下面的BEGINDATA后面就是导入的内容
INTO TABLE table_name    // 指定装入的表
BADFILE 'c:\bad.txt'     //可选,指定坏文件地址,缺省在当前目录下生成与原文件名一致的.bad文件
//************* 以下是4种装入表的方式
APPEND            // 原先的表有数据 就加在后面
// INSERT             //装载空表 如果原先的表有数据 sqlloader会停止 默认值
// REPLACE        //   原先的表有数据 原先的数据会全部删除
// TRUNCATE             //   指定的内容和replace的相同 会用truncate语句删除现存数据
//************* 指定分隔符
FIELDS TERMINATED BY ','  OPTIONALLY ENCLOSED BY '"'
// TERMINATED BY WRITESPACE //以空白分割
TRAILING NULLCOLS            // 表的字段没有对应的值时允许为空
************* 下面是表的字段
(
      col_1 , col_2 ,col_filler  FILLER  // FILLER 关键字 此列的数值不会被装载
       // 如: lg,lg,not 结果 lg lg
)  
     如果没声明FIELDS TERMINATED BY ',' 时,可以用下面两种方式实现同样功能:
(1)、为每一列指定分隔符
(
    col_1 [interger external] TERMINATED BY ',' ,
    col_2 [date "dd-mon-yyy"] TERMINATED BY ',' ,
    col_3 [char] TERMINATED BY ',' OPTIONALLY ENCLOSED BY 'lg'
)
(2)、用位置告诉字段装载数据
(
     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

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL*Loader是Oracle数据库的一个数据加载工具,它可以将数据从外部文件(如文本文件、CSV文件等)导入到Oracle数据库中。下面是SQL Loader的详细讲解: 1. SQL Loader的工作原理 SQL Loader的工作原理是将外部文件中的数据读入到内存缓冲区中,然后通过SQL语句将数据写入到Oracle数据库中。SQL Loader的主要组件有控制文件(Control File)、数据文件(Data File)、日志文件(Log File)和坏数据文件(Bad File)。 2. SQL Loader的控制文件 控制文件是SQL Loader的核心组件,它包含了SQL Loader的加载规则和指令。控制文件可以使用任何文本编辑器进行编辑,其中包含了如何解析数据、如何转换数据以及如何将数据写入到Oracle数据库中的指令。控制文件中定义了数据文件的格式、数据类型、分隔符、转义字符等信息。 3. SQL Loader的数据文件 数据文件是包含要加载到Oracle数据库中的数据的文件。它可以是文本文件、CSV文件或其他格式的文件。数据文件中的每一行都代表了要加载到数据库中的一条记录,每一列代表了记录中的一个字段。 4. SQL Loader的日志文件 日志文件用于记录SQL Loader的加载过程中发生的事件和错误信息。它可以帮助用户诊断加载问题。 5. SQL Loader的坏数据文件 坏数据文件用于存储在加载过程中无法解析或无法转换的数据。它可以帮助用户在加载完成后手动处理这些数据。 6. SQL Loader的使用步骤 使用SQL Loader需要以下步骤: (1)创建一个控制文件,定义要加载的数据文件的格式和加载规则。 (2)准备要加载的数据文件。 (3)使用SQL Loader命令行工具,指定控制文件和数据文件。 (4)查看日志文件和坏数据文件,处理错误和无法转换的数据。 以上就是SQL Loader的详细讲解,它可以帮助数据库管理员和开发人员更加方便地将外部数据导入到Oracle数据库中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值