Sqlldr用法

摘要:
Sqlldrsqllloader可以将一些以文本格式存储的数据顺利导入oracle数据库。它是一个非常方便和通用的工具,用于不同数据库之间的数据迁移。Sqlldr首先计算单个记录的长度并将其乘以行。如果小于bindsize,则不会尝试展开行以填充bindsize;如果超过,则以装订尺寸为准。按位置指定命令行参数的示例:“sqlldrscott/tiger foo”;通过关键字指定命令行参数的示例:“sqlldrcontrol=foouserid=scott/tiger”;不能使用关键字指定稍后按位置指定的混合方法;例如,允许使用“sqlldrscott/tigercontrol=boologfile=log”;但不允许使用“sqlldrscott/tigercontrol=boolog”。

  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_USED, GENERATE_ONLY, EXECUTE(默认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

免责声明:文章转载自《Sqlldr用法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇aws ssm指令css之背景 | padding | 背景图片 | 位置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python--命令行参数解析Demo

写没有操作界面的程序时,最讨厌的就是参数解析问题,尤其是很多参数那种,下面是一个小Demo,拿出来与各位分享: 1 # -*- coding:utf8 -*- 2 import os 3 import datetime 4 import sys 5 from optparse import OptionParser 6 7...

UDK命令

UDK命令行参数与控制台命令都是大小写不敏感的 命令行udn中文udn英文 全词大小写匹配,正则表达式,在c++代码中搜索减号开头的命令行参数(如:-BENCHMARK、-onethread等):ParseParam[ ]*( 全词大小写匹配,正则表达式,在c++代码中搜索KEY=的命令行参数(注:会搜索到解析ini中的key-value字符串,需挑选一下...

shell 命令行参数(基本)

命令行参数 $0 表示程序名。$1 至 $9则是位置参数。$# 表示参数的个数。$* 将所有参数当做一个整体来引用$@ 把每个参数作为一个字符串返回,可以使用for循环来遍历$? 最近一个执行的命令的退出状态。0表示执行成功$_ 上一个命令的最后一个参数。使用快捷键 ESC+. 也是这个效果 位置参数 位置参数不止9个,更多的参数也是一样支持的。只是要使用...

chromium浏览器开发系列第四篇:如何调试最新chromium源码

附上上几篇文章地址,方便大家查看: 下载源码 编译源码 目录结构 接二连三的事情,时间比较紧张,但是还是没有把这个系列的文章丢掉,因为这也是对自己知识的总结吧。提倡大家多写写,以后再看的时候会有种莫名的小激动。 上周写的是chromium的目录结构,好像大家不太感兴趣,在我看来这部分很重要。开头有链接地址,大家想看可以再看看。 从源码下载到编译,到目录结构...

第十一章:直接内存(Direct Memory)

一、直接内存概述 1、不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。 2、直接内存是在Java堆外的、直接向系统申请的内存区间; 3、来源于NIO,通过存在堆中的 DirectByteBuffer 操作 Native 内存; 4、通常,访问直接内存的速度会优于 Java 堆。即读写性能高; 因此出于性能考虑,读写频繁的场合可...

Python获取命令行参数

sys.argv[] 包含命令行参数的字符串列表,通过下标获取参数。 例如: ? #!/usr/bin/python # Filename: using_sys.py    importsys    print'The command line arguments are:' fori insys.argv:     printi    p...