sqlldr(sql loader)

Categories: Oracle

sqlldr userid=system/oracle@172.31.198.121/orabiz control=d:\student.ctl log=d:\log\student.log bad=d:\bad\student.bad skip=1
  • control–控制文件名

  • log–日志文件名

  • bad–错误文件名

  • discard–废弃文件名

  • discardmax–允许废弃的文件的数目

  • skip–要跳过的逻辑记录的数目(默认0)

  • load–要加载的逻辑记录的数目(默认全部)

  • errors–允许的错误的数目

  • 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)

OPTIONS (skip=1,load=128) -- sqlldr 命令显示的选项可以写到这里边来,skip=1 用来跳过数据中的第一行

LOAD DATA

INFILE 'users_data.csv' --指定外部数据文件,可以写多个 INFILE "another_data_file.csv" 指定多个数据文件

--这里还可以使用 BADFILE、DISCARDFILE 来指定坏数据和丢弃数据的文件,

truncate 

--truncate

--insert:需要插入的表数据为空,insert为默认选项;

--append:在表中增加数据,此时用户必须拥有对表的select权限;

--replace:删除原有数据导入新数据,表必须在schema下,或者有删除权限

INTO TABLE users -- 要插入记录的表

Fields terminated by ',' -- 数据中每行记录用 ',' 分隔

Optionally enclosed by '"' -- 数据中每个字段用 '"' 框起,比如字段中有 "," 分隔符时

trailing nullcols --表的字段没有对应的值时允许为空

(

  user_id number, --字段可以指定类型,否则认为是 CHARACTER类型, log 文件中有显示

  user_name,

  login_times,

  last_login DATE "YYYY-MM-DD HH24:MI:SS" -- 指定接受日期的格式,相当用 to_date() 函数转换

)

SQL*Loader Field List Reference

SQL*Loader Control File Reference

SQL*Loader Command-Line Reference

See also