Oracle 存储过程在 Informatica 存储过程转换映射中的会话结束时运行

Posted

技术标签:

【中文标题】Oracle 存储过程在 Informatica 存储过程转换映射中的会话结束时运行【英文标题】:Oracle stored procedure runs in the end of session in Informatica stored procedure transformation mapping 【发布时间】:2019-04-10 20:10:42 【问题描述】:

我创建了一个 Informatica 映射,其源是文本文件,目标也是文本文件。我正在使用连接的存储过程转换调用 Oracle 存储过程,下一步我将从存储过程中加载的表中读取数据。

问题是表正在加载,但表中的数据未被读取,它在目标文件中写入零记录。我认为存储过程是在会话结束时运行的。

如何使存储过程在流程中而不是在会话结束时运行?

如果我从 SQL Developer 或 informatica 调用,存储过程可以正常工作。

流程:

平面文件源 -> EXP 转换 -> 调用存储过程 -> SQL 转换(对表运行查询。) -> tgt 文件

存储过程流程:

截断表格 用一些输入数据加载表

【问题讨论】:

【参考方案1】:

您是否需要平面文件源?它是否包含存储过程的任何参数?如果没有:

删除平面文件源 为您的表创建源和源限定符 将存储过程作为 Pre-SQL 的一部分运行

否则,在您的映射中创建两个单独的流,例如:

Flat File Source -> Stored Procedure call -> Flat File Target

Source table -> Expression -> Flat File Target

【讨论】:

以上是关于Oracle 存储过程在 Informatica 存储过程转换映射中的会话结束时运行的主要内容,如果未能解决你的问题,请参考以下文章

Informatica参考

Informatica 是不是可以将值从 informatica 映射动态传递到 oracle 中的视图

在窗口 10 中使用 oracle 11g 安装 informatica 8.6 时出错

Informatica 工作流正在从 Oracle 视图中删除记录

informatica安装简易手册

在 Informatica 中的 SP 中没有冒泡的错误