oracle ctl file constantnull,DB2 Load 与 Oracle SQLLoader比较.docx

DB2 LOAD 与 Oracle SQL*Loader 的对比DB2 LOAD 与 DB2 IMPORT — 使用哪种 “路径”?注意:DB2 IMPORT 实用程序并不像 Oracle IMPORT 实用程序那样读取一种专有格式,所以不应该比较这两个实用程序。 实际上,DB2 有两种把外部数据源中的数据迁移到 DB2 表的实用程序:LOAD 和 IMPORT。LOAD 在页面级存放数据,这会绕过触发器和日志记录机制,并停止约束检查和索引构建,直到完成数据迁移。另一方面,IMPORT 基本上是执行 INSERT,所以在把数据放到表中时,会触发触发器、执行日志记录并执行约束检查和索引构建。这两个实用程序的选项之间还有其他许多差异,但是这超出了本文的范围。 另一方面,Oracle SQL*Loader 实用程序有两种操作模式,或者说操作路径:直接路径和传统路径。Oracle DBA 在使用这种实用程序时要指定 “路径”,这两种路径的效果分别与两个 DB2 实用程序相似。SQL*Loader “直接路径” 模式的功能与 DB2 LOAD 相似。SQL*Loader “传统路径” 模式的功能与 DB2 IMPORT 相似。 注意:对 DB2 LOAD(以及 IMPORT)和 Oracle SQL*Loader 的每个特性(关键字及其选项)进行全面对比是不现实的。 因此,本文只讨论 Oracle DBA 在把 SQL*Loader 脚本转换为 DB2 LOAD 脚本时通常使用的主要特性。作为 DB2 迁移专家,我们发现大多数 Oracle DBA 在通常使用 SQL*Loader 的传统模式,他们的经验和脚本也是针对传统路径的。实际上,一些 Oracle DBA 从来没有使用过 SQL*Loader 的直接路径模式。但是,当他们开始学习 DB2 时,常常选用 DB2 LOAD 实用程序(可能是因为这个名称);因为 LOAD 具有 SQL*Loader 直接路径模式的许多特征,而这些 Oracle DBA 没有使用过直接路径,所以他们会遇到许多困难。因此,为了把问题谈清楚,尽管大多数 Oracle DBA 通常使用传统模式,本文会演示如何把所有 SQL*Loader 脚本转换为 DB2 LOAD 实用程序脚本,无论原来的脚本采用哪个路径。我们认为这样做有助于 DB2 产生最佳性能。如果由于某种原因 DBA 希望把这些脚本转换为使用 IMPORT 而不是 LOAD,以后也可以这么做(如果情况允许的话)。 SQL*Loader 命令行 — 调用 SQLLDRIBM 为社区提供了 DB2 免费版本 DB2 Express-C,它提供了与 DB2 Express Edition 相同的核心数据特性,为构建和部署应用程序奠定了坚实的基础。 用 SQLLDR 二进制代码调用 Oracle SQL*Loader 实用程序,使用的命令行语法与 DB2 LOAD 相似。命令行可以包含许多关键字,比如告诉 SQL*Loader 实用程序把消息发送到哪里、把丢弃的记录发送到哪里等等。 SQLLDR 命令行还指定 “控制文件” 的名称(常常具有 .CTL 扩展名)。这个控制文件也可以告诉 SQL*Loader 实用程序把消息发送到哪里、把丢弃的记录发送到哪里等等。SQLLDR 命令行中的关键字设置优先于控制文件中的设置,所以要想了解 SQL*Loader 会话的实际工作方式,必须同时关注 SQLLDR 命令行和控制文件。这样的设计方式可能是为了提高 SQL*Loader 的灵活性和功能,但是在把脚本迁移到 DB2 时,如果在这两个位置都使用了一些相同的关键字,而且各个脚本的设置不一致,就可能引起混乱。 SQL*Loader 控制文件指定装载操作的细节,所以在对比 SQL*Loader 和 DB2 LOAD 时,主要对比 SQLLDR 控制文件和 DB2 LOAD 命令行。但是,我们要先讨论 SQLLDR 命令行的所有选项,并将其与 DB2 LOAD 命令行进行比较,看看它们的相似之处。然后,讨论控制文件及其关键字和选项,再与 DB2 LOAD 命令行进行比较。 表 1. DB2 LOAD 与 Oracle SQL*Loader 直接路径特性DB2 LOADSQL*Loader(直接路径)直接路径使用 DB2 LOAD 实用程序使用 SQL*Loader 直接路径 —— 传统路径的许多选项不可用。在装载后生成统计数据是(如果替换数据),不(如果追加数据)不可恢复可以,使用 COPY YES 选项在直接路径中不可以默认(值)可用 不可用使用多个输入文件 可以对于一个 SQLLDR,只能使用一个文件异常数据写到一个异常表和/或 DUMP 文件写到一个异常表从游标装载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值