Sqlldr的使用 一个简单的sqlldr 例子 在介绍功能之前,首先我们来试用一个最简单的sqlldr 例子。 前提:安装了oracle 客户端。 在“开始”->“运行”,输入“cmd”,回车。在打开的dos 窗口里输入:sqlldr。如果显示如下,就表明你已经安装了sqlldr 并且使用了。 下面,我为了快速学习,先忽略参数的说明。只管用一个简单的例子。 我在本机上安装了Linux的oracle 数据库,现在先建立一个测试的表: create table tdsxhwn.tbtestsqlldr( id int, name varchar(10) ) 然后配置一个连接服务,别名为 LOCALHOST_ORCL 打开 PL/SQL 即可看到: 如果没有PL/SQL,也可以在$ORACLE_HOME\client_1\NETWORK\ADMIN\tnsnames.ora 文件找到: 现在,我在“D:\sqlldr”文件夹里创建两个文件: control.txt 文件: data.txt 然后,在刚才的 dos 窗口里输入: sqlldr userid=tdsxhwn/td$123@LOCALHOST_ORCL control=d:\sqlldr\control.txt log= d:\sqlldr\out.log 上面 sqlldr 的格式是: sqlldr userid=用户/密码@服务别名 control= control 文件路径 log=日志文件路径 效果如下: LOCALHOST_ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.88)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) 我们去数据库里查一下: select * from tdsxhwn.tbtestsqlldr 该结果与data.txt 的数据对比,可以看出有些不太一样 这时,我们到D:\sqlldr 会发现有一个data.bad 和out.log 的文件,”*.bad”通常就是记录插入数据库失败的行,而”out.log”是我们刚才指定的日志名,打开data.bad 可以看到: 4##gdktcattsoft kk##name 刚好这两行是没有插入到表tdsxhwn.tbtestsqlldr 的。 打开out.log 可以看到其中一些信息: 这里告诉了我们,第三和第四行记录发生了什么样的错误 而第五行:7##gd##catt;由于超出了字段数量,超出部分自动被截取掉了。 记录 3: 被拒绝 - 表 TBTESTSQLLDR 的列 NAME 出现错误。 ORA-12899: value too large for column "TDSXHWN"."TBTESTSQLLDR"."NAME" (actual: 12, maximum: 10) 记录 4: 被拒绝 - 表 TBTESTSQLLDR 的列 ID 出现错误。 ORA-01722: invalid number Sqlldr拥有的功能 加载可变长度或指定长度的记录 固定程度数据load 可以通过position ...