Skip to content

SQLLDR

功能

SQLLDR是文件导入命令,可以将控制台工具或者其他工具导出的结果集文件导入到数据库的表中,需要注意的是文件的列数要与表的列数一致,并且是顺序对应的关系。

语法格式

SQLLDR TABLE=[schema_name.]tab_name DATAFILE=filepath FT=ft RT=rt [LOG=logpath] [ERRLOG=errlogpath] [MODE=replace|append] [IMP_TYPE=block|insert|auto|store] [CSV_DEAL=true|false] [LAST_FT=true|false]

参数说明

  • SQLLDR:导入命令标识符。
  • TABLE:导入的表。
    • schema_name.:可选,模式名。
    • tab_name:目标表名。
  • DATAFILE:数据文件的路径+文件名。
  • FT:列分隔符,如|,等。
  • RT:行结尾标识符,可设为X'0a'X'0d0a'
    • X'0a':行结尾换行为\n
    • X'0d0a':行结尾换行为\r\n
  • LOG:可选,SQLLDR运行日志记载路径。
  • ERRLOG:可选,SQLLDR错误信息日志记载路径。
  • MODE:可选,导入方式,可设为appendreplace,默认为append
    • append:追加导入。
    • replace:覆盖导入。
  • IMP_TYPE:可选,导入类型,可设为blockinsertautostore
    • block:按块导入。
    • insert:插入导入。
    • auto:自动分配,V12及以上版本的数据库不支持此功能。
    • store:存储导入,V12及以上版本的数据库不支持此功能。
  • CSV_DEAL:可选,格式化CSV文件,去除单元格开头双引号,可设为truefalse,默认为false。若数据文件不为CSV格式时,无需指定该参数。
  • LAST_FT:可选,每行最后一列数据是否自带列分标志位,可设为truefalse,默认为false。示例:数据表有A、B、C共3个列,此时文件数据为1、2、3,则LAST_FT=true;若文件数据为1、2,则LAST_FT=false

    说明:

    控制台V1.4.6版本开始支持LAST_FT参数。

示例

将F:\tpcc100w\warehouse.txt文件中的数据导入到sysdba.warehouse数据表中。

sql
SQL> sqlldr table=sysdba.warehouse datafile=F:\tpcc100w\warehouse.txt ft='|' rt=X'0d0a' log=./load.log errlog=./loaderr.log mode=replace imp_type=block