下面的是关于sql*loader 的使用的一点总结 有些是来自itpub上的一些网友的总结
大部分是oracle专家高级编程上的实例 只是我实践以后写的结果
sqlldr userid=lgone/tiger control=a.ctl
LOAD DATA INFILE ''''t.dat'''' // 要导入的文件 // INFILE ''''tt.dat'''' // 导入多个文件 // INFILE * // 要导入的内容就在control文件里 下面的BEGINDATA后面就是导入的内容
INTO TABLE table_name // 指定装入的表 // into table t_name partition (p_1) 分区的载入
BADFILE ''''c:\bad.txt'''' // 指定坏文件地址
************* 以下是4种装入表的方式 APPEND // 原先的表有数据 就加在后面 // INSERT // 装载空表 如果原先的表有数据 sqlloader会停止 默认值 // REPLACE // 原先的表有数据 原先的数据会全部删除 // TRUNCATE // 指定的内容和replace的相同 会用truncate语句删除现存数据
SKIP 5 可以用 "SKIP n" 关键字来指定导入时可以跳过多少行数据
************* 指定的TERMINATED可以在表的开头 也可在表的内部字段部分 FIELDS TERMINATED BY '''','''' OPTIONALLY ENCLOSED BY ''''"'''' // 装载这种数据: 10,lg,"""lg""","lg,lg" // 在表中结果: 10 lg "lg" lg,lg // TERMINATED BY X ''''09'''' // 以十六进制格式 ''''09'''' 表示的 // TERMINATED BY WRITESPACE // 装载这种数据: 10 lg lg TRAILING NULLCOLS ************* 表的字段没有对应的值时允许为空
************* 下面是表的字段 ( col_1 , col_2 ,col_filler FILLER // FILLER 关键字 此列的数值不会被装载 // 如: lg,lg,not 结果 lg lg ) // 当没声明FIELDS TERMINATED BY '''','''' 时 // ( // col_1 [interger external] TERMINATED BY '''','''' , // col_2 [date "dd-mon-yyy"] TERMINATED BY '''','''' , // col_3 [char] TERMINATED BY '''','''' OPTIONALLY ENCLOSED BY ''''lg'''' // ) // 当没声明FIELDS TERMINATED BY '''',''''用位置告诉字段装载数据 // ( // 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
===================================================================================== //////////// 注意begindata后的数值前面不能有空格
1 ***** 普通装载 LOAD DATA INFILE * INTO TABLE DEPT REPLACE FIELDS TERMINATED BY '''','''' OPTIONALLY ENCLOSED BY ''''"'''' (DEPTNO, DNAME, LOC ) BEGINDATA 10,Sales,"""USA""" 20,Accounting,"Virginia,USA" 30,Consulting,Virginia 40,Finance,Virginia 50,"Finance","",Virginia // loc 列将为空 60,"Finance",,Virginia // loc 列将为空
2 ***** FIELDS TERMINATED BY WHITESPACE 和 FIELDS TERMINATED BY x''''09'''' 的情况 LOAD DATA INFILE * INTO TABLE DEPT REPLACE FIELDS TERMINATED BY WHITESPACE -- FIELDS TERMINATED BY x''''09'''' (DEPTNO, DNAME, LOC ) BEGINDATA 10 Sales Virginia 3 ***** 指定不装载那一列 还可用 POSTION(x:y) 来分隔数据 LOAD DATA INFILE * INTO TABLE DEPT REPLACE FIELDS TERMINATED BY '''','''' OPTIONALLY ENCLOSED BY ''''"'''' ( DEPTNO, FILLER_1 FILLER, // 下面的 "Something Not To Be Loaded" 将不会被装载 DNAME, LOC ) BEGINDATA 20,Something Not To Be Loaded,Accounting,"Virginia,USA"
4 ***** position的列子 LOAD DATA INFILE * INTO TABLE DEPT & [1] [2] [3] [4] [5] 下一页 [系统软件]EXP-00008: ORACLE error 904 encountered的解决方… [常用软件]PB7 连接 Oracle 的配置方法 [Web开发]oracle Export and Import 简介 [Web开发]ADO访问Oracle结果集的心得 [JAVA开发]JDBC+Hibernate将Blob数据写入Oracle [JAVA开发]J2EE应用中与Oracle数据库的连接 [JAVA开发]Oracle Application Serve_ [其他]HP-UXrx2600B.11.22Uia64安装oracle9i9.2foria64手… [其他]oracle使用杂记2 [其他]在RedhatEnterpriseserver3上安装oracle9iR2的注意…
|