【导入导出】sqlldr 导入案例

今天使用sqlldr 将600w单字段的数据导入到一个表当中,但是由于未指定分隔符导致导入数据失败。重现一下导入过程。
load.ctl
load data
infile 'd:\rid_600w.txt'
insert
into table tmp_user (tuid)

C:\Users\aaaa>sqlldr  userid=yang/yang control=d:\load.ctl direct=true
SQL*Loader: Release 11.1.0.6.0 - Production on 星期三 3月 9 20:12:02 2011
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
加载完成 - 逻辑记录计数 6070664。
==========sqlplus记录
C:\Users\aaaa>sqlplus yang/yang
SQL*Plus: Release 11.1.0.6.0 - Production on 星期三 3月 9 19:42:28 2011
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
yang@ORACL> create table tmp_user(tuid varchar2(100));
表已创建。
yang@ORACL> select tuid from tmp_user where rownum <12;
TUID
------------------------
c
c
c
c
c
c
c
c
c
c
c

已选择11行。
===================导入的日志如下:注意 长度的值为1--失败的关键。
SQL*Loader: Release 11.1.0.6.0 - Production on 星期三 3月 9 20:12:02 2011
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
控制文件:      d:\load.ctl
数据文件:      d:\rid_600w.txt
  错误文件:    d:\rid_600w.bad
  废弃文件:    未作指定
(可废弃所有记录)
要加载的数: ALL
要跳过的数: 0
允许的错误: 50
继续:    未作指定
所用路径:       直接
表 TMP_USER,已加载从每个逻辑记录
插入选项对此表 INSERT 生效
   列名                        位置      长度  中止 包装数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
TUID                                FIRST     1           CHARACTER            
表 TMP_USER:
  6070664 行 加载成功。
  由于数据错误, 0 行 没有加载。
  由于所有 WHEN 子句失败, 0 行 没有加载。
  由于所有字段都为空的, 0 行 没有加载。
在直接路径中没有使用绑定数组大小。
列数组  行数:    5000
流缓冲区字节数:  256000
读取   缓冲区字节数: 1048576
跳过的逻辑记录总数:          0
读取的逻辑记录总数:       6070664
拒绝的逻辑记录总数:          0
废弃的逻辑记录总数:        0
由 SQL*Loader 主线程加载的流缓冲区总数:     1259
由 SQL*Loader 加载线程加载的流缓冲区总数:        0
从 星期三 3月  09 20:12:02 2011 开始运行
在 星期三 3月  09 20:12:09 2011 处运行结束
经过时间为: 00: 00: 06.30
CPU 时间为: 00: 00: 01.98
错误的原因是因为没有指出分割符。FIELDS TERMINATED BY '    '/FIELDS TERMINATED BY 'chr(10)' 都可以。
==========修改后的load 控制文件====
load.ctl
load data
infile 'd:\rid_600w.txt'
insert
into table tmp_user FIELDS TERMINATED BY 'chr(10)' (tuid)
fields teriminated by 'chr(10)' 表示一换行符为分隔符
C:\Users\aaaa>sqlldr  userid=yang/yang control=d:\load.ctl direct=true log=d:\sqlldr.log
SQL*Loader: Release 11.1.0.6.0 - Production on 星期三 3月 9 20:21:07 2011
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
加载完成 - 逻辑记录计数 6070664。
yang@ORACL> truncate table tmp_user;
表被截断。
yang@ORACL> drop table tmp_user;
表已删除。
yang@ORACL> create table tmp_user(tuid varchar2(50));
表已创建。
yang@ORACL> select tuid from tmp_user where rownum <12;
TUID
--------------------------
cindy74583
himself49441
paragraph58429
wander80900
soluble32354
situation72689
gross51644
lee54299
dismiss32151
eyesight1968
advance7776
已选择11行。
yang@ORACL>
===================导入的日志如下:注意 长度的值为*
SQL*Loader: Release 11.1.0.6.0 - Production on 星期三 3月 9 20:21:07 2011
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
控制文件:      d:\load.ctl
数据文件:      d:\rid_600w.txt
  错误文件:    d:\rid_600w.bad
  废弃文件:    未作指定
(可废弃所有记录)
要加载的数: ALL
要跳过的数: 0
允许的错误: 50
继续:    未作指定
所用路径:       直接
表 TMP_USER,已加载从每个逻辑记录
插入选项对此表 INSERT 生效
   列名                        位置      长度  中止 包装数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
TUID                                FIRST     *           CHARACTER            
    终止符字符串:  'chr(10)'
表 TMP_USER:
  6070664 行 加载成功。
  由于数据错误, 0 行 没有加载。
  由于所有 WHEN 子句失败, 0 行 没有加载。
  由于所有字段都为空的, 0 行 没有加载。
在直接路径中没有使用绑定数组大小。
列数组  行数:    5000
流缓冲区字节数:  256000
读取   缓冲区字节数: 1048576
跳过的逻辑记录总数:          0
读取的逻辑记录总数:       6070664
拒绝的逻辑记录总数:          0
废弃的逻辑记录总数:        0
由 SQL*Loader 主线程加载的流缓冲区总数:     1259
由 SQL*Loader 加载线程加载的流缓冲区总数:        0
从 星期三 3月  09 20:21:07 2011 开始运行
在 星期三 3月  09 20:21:17 2011 处运行结束
经过时间为: 00: 00: 09.89
CPU 时间为: 00: 00: 05.82 

时间: 2024-09-18 10:38:35

【导入导出】sqlldr 导入案例的相关文章

oracle sqlldr导入-Oracle sqlldr 导入数据

问题描述 Oracle sqlldr 导入数据 有表 create table day_gnl_dtl( code char(9),time_stamp timestamp); 需要导入的文本文件day_gnl_dtl.txt 内容为这样的格式: 222022133|2014-04-03 15:59:30.222 222032133|2014-02-03 15:59:30.222 922032233|2014-11-03 15:59:30.222 122312333|2014-09-03 15:

【导入导出】导入时遇到 ORA-01950

ORA-01950错误分析 错误原因:  1.用户没有resource权限.  2.在修改了用户的表空间后,在用户中创建表时会出现以下的错误:ORA-01950: 对表空间 'EXAMPLE' 无权限  这个时候就要给修改了表空间的用户重新分配权限如:grant connect,resource to username;再切换到该用户下创建表.  3.此错误是由于对表空间操作的权限不足造成的,所以这个时候就可以检查出错之前对于所操作的表空间是否具有相应的权限有,如果没有则重新赋予相应的权限 C:

数据导入导出-sqlserver2005导入文件的发生错误,错误oxc0202009:数据流任务:

问题描述 sqlserver2005导入文件的发生错误,错误oxc0202009:数据流任务: 错误 0xc0202009: 数据流任务: SSIS 错误代码 DTS_E_OLEDBERROR.出现 OLE DB 错误.错误代码: 0x80040E53. (SQL Server 导入和导出向导) 错误 0xc0047022: 数据流任务: SSIS 错误代码 DTS_E_PROCESSINPUTFAILED.组件"目标 - D_JGXX"(43)的 ProcessInput 方法失败,

深入分析Mongodb数据的导入导出_MongoDB

一.Mongodb导出工具mongoexport Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件.可以通过参数指定导出的数据项,也可以根据指定的条件导出数据. mongoexport具体用法 [root@localhost mongodb]# ./bin/mongoexport --help Export MongoDB data to CSV, TSV or JSON files. options: --help produce

excel-NPOI导入导出Excel问题

问题描述 NPOI导入导出Excel问题 使用NPOI导入Excel 并将导入的Excel导出到另一个Excel 由于导入的公式为string类型 无法实现公式随着行号的变化而动态改变 导入: if (row.GetCell(j) != null && row.GetCell(j).CellType == CellType.Numeric) dataRow[j] = row.GetCell(j).NumericCellValue; if (row.GetCell(j) != null &a

使用Transact-SQL进行数据导入导出方法详解

本文为原创,如需转载,请注明作者和出处,谢谢! 本文曾发表于IT168:http://tech.it168.com/db/s/2006-08-16/200608160913336_1.shtml    本文讨论了如何通过Transact-SQL以及系统函数OPENDATASOURCE和OPENROWSET在同构和异构数据库之间进行数据的导入导出,并给出了详细的例子以供参考. 1. 在SQL Server数据库之间进行数据导入导出 (1).使用SELECT INTO导出数据       在SQL

关于 Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法

在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法: 1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中2. 建立数据库间的 dblink,然后用 create table B as select * from A@dblink where ...,或 insert into B select * from A@dblink where ...3. exp A 表,再 imp 到 B 表,exp 时可加查询条件4. 程序

PROC++批量导入导出ORACLE数据库表

oracle|数据|数据库 最近在开发一个项目中,为了解决数据库IO瓶颈,不得不把数据库中的数据导出为文本文件.文本传到客户端后又要导入到数据库.本人用C++Builder嵌入PROC++写了一个导入导出的DLL.如果对你有用深感荣幸!详细内容如下:   一.准备工作 计算机环境:Win 2000 PRO,ORACLE 9i,C++ Builder 5.5 引入必要的ORACLE内部函数:要用的函数在$(ORACEL_HOME)\bin qlora9.dll链接库中.为了能在C++ Builde

Mysqldump备份还原数据与导入导出语句

  mysqldump备份还原和mysqldump导入导出语句大全详解 mysqldump备份: mysqldump -u用户名 -p密码 -h主机 数据库 a -w "sql条件" --lock-all-tables > 路径 案例: mysqldump -uroot -p1234 -hlocalhost db1 a -w "id in (select id from b)" --lock-all-tables > c:aa.txt mysqldump

php导入导出excel实例_php实例

这里实现的PHP导入导出excel功能用到的是开源PHPExcel,执行下面的操作之前请先下载该类库文件,官方网站:http://www.codeplex.com/PHPExcel,官网案例代码很多,导出pdf什么的都有,这里主要介绍PHP导入导出excel的功能,导出excel文件是office2007格式,同时兼容2003. php导入excel导入的excel文件的数据格式,截图如下:下面是将该excel文件的数据导入到数据库的具体代码: 复制代码 代码如下: <?phprequire_o