一、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.data15968600^025_value_added_0_201011301014_030937.Tdat^2010-11-30 10:18:2015968572^025_call_0_201011301012_030907.Tdat^2010-11-30 10:16:1615968596^025_data_0_201011301015_030964.Tdat^2010-11-30 10:17:53创建控制文件file_list.ctlOPTIONS (ROWS=1000) load data infile "E: file_list.dat" BADFILE "E:logerror.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.ctlOracle知识:存储过程建db_link权限问题RMAN系统完全备份动手操作第一步相关资讯 oracle数据库教程
- Oracle raw数据类型介绍 (01/29/2013 10:05:53)
- 监听器注册与ORA-12514 错误分析 (11/13/2012 14:30:08)
- Oracle SQL的cursor理解 (11/13/2012 14:16:17)
| - Oracle 如何强制刷新Buffer Cache (01/29/2013 10:02:46)
- dblink致Oracle库的SCN变成两库的 (11/13/2012 14:24:41)
- Linux操作系统下完全删除Oracle数 (11/13/2012 08:25:52)
|
本文评论 查看全部评论 (0)