Oracle 使用SQL Loader 从外部导入数据
2011-11-07 13:03
441 查看
在项目中经常会有一些基础数据需要从Excel或其他文件中导入。大部分的格式都是树结构。如果是这样,我们对数据稍加整理,即可使用Oracle的数据导入工具SQL Loader导入我们所需要的数据到指定的表中。SQL Loader的详细用法,可自己查询相关详细的文档,这里只做简单的使用介绍。
1、对数据进行整理。
拿出数据和数据库中表比照一下,整理成与数据库一致的机构(如果只是几个字段即对应字段,整理成记录的形式)。
2、使用Excel将数据导出另存为txt或者rtf形式的文件。以具体某种分隔符分隔。
3、编写SQL Loader使用的控制文件。
下面是一简单的控制文件sqlloader_nrfl.ctl
其中append为附加记录到表中,X'09'为分隔符(制表符)
注意字段与表中字段对应一致
4、使用sqlldr命令导入。
Windows环境下,使用cmd进入控制文件所在目录,执行命令sqlldr userid=scott/tiger@orcl control=sqlloader_nrfl.ctl,数据导入成功。导入默认生成同名为log后缀的日志文件,查看该日志文件可以看到如下内容:
如果导入过程中有失败的记录,会被记录到nrfl.bad文件中,如果没有这个文件,说明导入已经成功执行,发现了这个文件,可以查看下具体失败的原因,作出相应的修改后再次执行命令(注意修改控制文件的数据源文件,改为nrfl.bad文件即可)。
1、对数据进行整理。
拿出数据和数据库中表比照一下,整理成与数据库一致的机构(如果只是几个字段即对应字段,整理成记录的形式)。
2、使用Excel将数据导出另存为txt或者rtf形式的文件。以具体某种分隔符分隔。
3、编写SQL Loader使用的控制文件。
下面是一简单的控制文件sqlloader_nrfl.ctl
load data infile 'nrfl.txt' append into table gy_nrfl fields terminated by X'09' (flid,mc,qc,sjid,sfzx)
其中append为附加记录到表中,X'09'为分隔符(制表符)
注意字段与表中字段对应一致
4、使用sqlldr命令导入。
Windows环境下,使用cmd进入控制文件所在目录,执行命令sqlldr userid=scott/tiger@orcl control=sqlloader_nrfl.ctl,数据导入成功。导入默认生成同名为log后缀的日志文件,查看该日志文件可以看到如下内容:
SQL*Loader: Release 10.2.0.3.0 - Production on 星期一 11月 7 10:54:27 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. 控制文件: sqlloader_nrfl.ctl 数据文件: nrfl.txt 错误文件: nrfl.bad 废弃文件: 未作指定 (可废弃所有记录) 要加载的数: ALL 要跳过的数: 0 允许的错误: 50 绑定数组: 64 行, 最大 256000 字节 继续: 未作指定 所用路径: 常规 表 GY_NRFL,已加载从每个逻辑记录 插入选项对此表 APPEND 生效 列名 位置 长度 中止 包装数据类型 ------------------------------ ---------- ----- ---- ---- --------------------- FLID FIRST * WHT CHARACTER MC NEXT * WHT CHARACTER QC NEXT * WHT CHARACTER SJID NEXT * WHT CHARACTER SFZX NEXT * WHT CHARACTER 表 GY_NRFL: 177 行 加载成功。 由于数据错误, 0 行 没有加载。 由于所有 WHEN 子句失败, 0 行 没有加载。 由于所有字段都为空的, 0 行 没有加载。 为绑定数组分配的空间: 82560 字节 (64 行) 读取 缓冲区字节数: 1048576 跳过的逻辑记录总数: 0 读取的逻辑记录总数: 177 拒绝的逻辑记录总数: 0 废弃的逻辑记录总数: 0 从 星期一 11月 07 10:54:27 2011 开始运行 在 星期一 11月 07 10:54:27 2011 处运行结束 经过时间为: 00: 00: 00.16 CPU 时间为: 00: 00: 00.09
如果导入过程中有失败的记录,会被记录到nrfl.bad文件中,如果没有这个文件,说明导入已经成功执行,发现了这个文件,可以查看下具体失败的原因,作出相应的修改后再次执行命令(注意修改控制文件的数据源文件,改为nrfl.bad文件即可)。
相关文章推荐
- 使用sql loader把db2表中数据导入到oracle
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
- 如何利用Oracle外部表导入文本文件的数据
- oracle下的sqlldr命令使用方法(sqlldr工具的使用(批量导入数据))
- 【ORACLE】sql*loader的使用(以将iostat数据导入数据库表为例)
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
- Oracle sqldevelop的使用(数据即.dmp文件的导入,用户创建,创建连接)
- 使用Talend Open Studio将数据分步从oracle导入到hive中
- 使用Oracle 的 imp ,exp 命令实现数据的导入导出
- 使用SQL*Loader将CSV文件数据导入ORACLE
- 【原创】使用SqlServer的DTS进行Oracle数据导入的注意事项
- 使用Oracle 的 imp ,exp 命令实现数据的导入导出
- 如何利用Oracle外部表导入文本文件的数据
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
- Oracle 数据导入导出imp/exp 使用详解
- 使用SQL*Loader将CSV文件数据导入ORACLE数据表
- 将外部数据导入oracle
- Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法
- oracle技术_使用exp/imp 导入11g数据到9i
- Oracle使用imp/exop远程导入导出dmp数据