SQL*Loader将外部文件中的数据加载到Oracle数据库表中,SQL使用两个文件:数据文件;控制文件。
控制文件:xxx.ctl
OPTIONS (skip=n,rows=y,readsize=1048576,bindsize =256000) ##skip:表示跳过数据中的第n行;rows:每达到y行时进行commit操作;readsize:读取缓冲区大小;bindsize:绑定缓冲区大小.
LOAD DATA
INFILE 'xxxxxx01.csv’ ##外部数据文件,格式:txt类文件、csv类文件。
INFILE ‘xxxxxx02.csv’ ## 存在多个文件时,可以直接在后面添加。
BADFILE ‘yyyyyy.bad’ ##错误文件包含加载时由于错误数据而拒绝加载的行。
INSERT|APPEND|REPLACE ##INSERT:表中添加行;APPEND:表中追加记录;REPLACE :用于清空表,再添加新行。
TRUNCATE ##清楚表中原有记录。TRUNCATE命令不能够回滚,因此使用时要格外谨慎。
INTO TABLE table_name ##插入数据的表名称。
FIELDS TERMINATED BY ‘,’ ##加载时每个列的值都以逗号分隔。
OPTIONALLY ENCLOSED BY ‘"’ ##部分字段可以用双引号包含。
TRAILING NULLCOLS ##数据库表中无对应字段设为空。
(
COLS1, ## 默认CHARACTER 类型,长度为255。
COLS2, ## 导入数据文件数据列与字段要匹配。
COLS3, ##日期格式:DATE “YYYY-MM-DD HH24:MI:SS”
COLS4, ##
COLS5 ##
)
加载命令:
sqlldr userid=password/@ip:1521/orcl control=xxx.ctl
直接路径加载:
Direct Path 选项创建预先格式化的数据块,并且把这些块插入表中。在直接路径加载期间,即使启用触发器,触发器也不会被**。
使用direct Path选项,应该指定:direct=true,可以作为sqlldr命令行的关键字,或者控制文件中包含的选项。
相关文章: