对于熟悉 DataStage 的人,我想知道 Oracle SQLLDR 是否可以在 DataStage 上使用。我有一些想要合并到 DataStage 中的控制文件集。一步一步地完成这一点将不胜感激。谢谢
4 回答
我的猜测是您可以在数据阶段使用外部阶段运行它。您只需将 SQLLDR 命令放在外部阶段,它就会被执行。试试看,告诉我会发生什么。
我们可以在 DataStage 中使用 ORACLE SQL Loader。
如果您检查 Oracle Docs,SQL Loader 下有两种类型的快速加载
1) 直接路径加载 - 数据库端的验证较少
2) 常规路径负载
如果我们与常规负载相比,直接负载的验证较少。
在 SQL Loader 过程中,我们必须指定点,例如
直接与否
平行与否
约束和索引选项
控制和丢弃或记录文件
在 DataStage 中,我们有 Oracle Enterprise 和 Oracle Connector Stages
甲骨文企业 -
我们在这个阶段有加载选项以快速模式加载数据,我们可以为 Oracle 设置环境变量 OPTIONS,示例如下
选项(直接=假,平行=真)
Oracle 连接器 -
我们有批量加载选项,其他与 SQL 加载器相关的属性在属性选项卡中可用。
示例 - 控制和丢弃所有由 DataStage 设置的文件值,但您可以手动设置这些属性和其他属性。
如您所知,SQLLDR 基本上将数据从文件加载到数据库,因此 datastage 允许您使用任何输入数据文件,该文件将在任何数据文件(如顺序文件)中接受输入,传递它们的格式,传递表的模式,它会创建一个内存模板表,然后您可以使用数据库连接器,如 odbc 或 db2 等,这会将您的数据加载到您的表中,就这么简单。
注意:如果您的表在后端尚不存在,则在第一次执行时创建它,然后将其设置为追加或截断。
脚步:
- 从文件中读取数据(顺序文件阶段)
- 使用 Oracle 连接器加载它(您可以使用批量加载,以便您可以使用 SQL 加载器使用直接加载方法,并且可以手动配置数据文件和控制文件设置)。批量加载操作:它从输入链接接收记录并将它们传递给 Oracle 数据库,Oracle 数据库将它们格式化为块并将块附加到目标表中,而不是将它们存储在现有块的可用空间中。
您可以参考IBM 文档了解更多详细信息。
请记住,当您使用批量加载时,在处理拒绝、触发器或约束时,加载可能会有一些限制。这一切都取决于您的要求。