Oracle sqlload加载数据
2011-12-29 16:44
323 查看
一、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、程序实现 select from A ..,然后 insert into B ...,也要分批提交。
5、Sql Loader(sqlldr) 来导入数据,效果比起逐条 insert 来很明显。
二、在命令行下执行 Oracle 的 sqlldr 命令,可以看到它的详细参数说明:
Username -- Oracle数据库名 。
Password -- Oracle数据库密码。
Servicename -- 是Oracle服务实例名 。
Control -- 控制文件,可能包含表的数据。
Log -- 记录导入时的日志文件,默认为 控制文件(去除扩展名).log。
Bad -- 坏数据文件,默认为 控制文件(去除扩展名).bad。
Data -- 数据文件,一般在控制文件中指定。用参数控制文件中不指定数据文件更适于自动操作。
Errors -- 允许的错误记录数,可以用他来控制一条记录都不能错。
Rows -- 多少条记录提交一次,默认为 64。
Skip -- 跳过的行数,比如导出的数据文件前面几行是表头或其他描述。
Insert -- 为缺省方式,在数据装载开始时要求表为空
Append -- 在表中追加新记录
Replace -- 删除旧记录(用 delete from table 语句),替换成新装载的记录
Truncate -- 删除旧记录(用 truncate table 语句),替换成新装载的记录
OPTIONS (skip=1,rows=128) -- sqlldr 命令显示的选项可以写到这里边来,skip=1 用来跳过数据中的第一行,每128行提交一次
Fields terminated by "," -- 字段间隔为“,”
Optionally enclosed by '"' – 行记录间隔
Trailing nullcols -- 表的字段没有对应的值时允许为空
三、sqlldr 的使用,有两种使用方法:
1、只使用一个控制文件,在这个控制文件中包含数据。
2、使用一个控制文件(作为模板) 和一个数据文件。
一般为了利于模板和数据的分离,以及程序的不同分工会使用第二种方式。
四、举例:
此处使用第二种方法
建表file_list:
create table file_list
(
file_id number,
file_name varchar2(250),
created_date date
) ;
创建数据文件file_list.data
15968600^025_value_added_0_201011301014_030937.Tdat^2010-11-30 10:18:20
15968572^025_call_0_201011301012_030907.Tdat^2010-11-30 10:16:16
15968596^025_data_0_201011301015_030964.Tdat^2010-11-30 10:17:53
创建控制文件file_list.ctl
OPTIONS (ROWS=1000)
load data
infile 'E:\ file_list.dat'
BADFILE 'E:\log\error.bad'
replace into table file_list
fields terminated by '^'
trailing nullcols
(
FILE_ID
,FILE_NAME
,CREATED_DATE DATE "YYYY-MM-DD HH24:MI:SS"
)
五、运行:
点击开始->运行 键入cmd
执行以下命令:
E:\>sqlldr username/password@servicename control=file_list.ctl
相关文章推荐
- Oracle数据加载之外部表的介绍
- jdbc底层驱动加载数据机制之防止内存溢出(2)--oracle
- oracle下的sqlldr命令使用方法(sqlldr工具的使用(批量将文本文件数据加载到数据表))
- ORACLE_LOADER加载外部数据
- Oracle 9i & 10g编程艺术-深入数据库体系结构——第15章:数据加载和卸载
- Oracle中加载数据和文件测试<学习笔记>
- 用oralce连接.net客户端出现问题:“数据连接不成功,请检查该数据库是否已启动尝试加载oracle客户端时引发BadImageFormatException.如果在安装32位Oracle客户端组
- oracle交换分区对数据的加载提速案例
- Oracle 高速批量数据加载工具sql*loader使用说明
- Oracle 高速批量数据加载工具sql*loader使用说明
- AE的MapControl直接加载Oracle矢量数据——不安装Oracle客户端也不安装sde
- oracle 数据加载方法
- oracle数据加载的几种常用方法
- oracle 执行一条查询语句,把数据加载到页面或者前台发生的事情
- ORACLE创建外部表及数据加载
- 利用oracle dbms_scheduler执行windows的bat脚本加载数据
- Oracle数据加载和卸载的实现方法
- ORACLE sqlload 加载外部数据方法
- 转载:用oralce连接.net客户端出现问题:“数据连接不成功,请检查该数据库是否已启动尝试加载oracle客户端时引发BadImageFormatException.如果在安装32位Oracle客户端组件的情况下以64位模式运行,”的解
- [oracle]管理--sqlldr 数据加载的使用