我创建了一个 Informatica 映射,其源是文本文件,目标也是文本文件。我正在使用连接的存储过程转换调用 Oracle 存储过程,在下一步中,我将从存储过程中加载的表中读取数据。
问题是表正在加载,但表中的数据未读取,并且在目标文件中写入零记录。我认为存储过程在会话结束时运行。
如何使存储过程在流中运行,而不是在会话结束时运行?
如果我从 SQL 开发人员或从 informatica 调用,存储过程工作正常。
流:
- 平面文件源 -> EXP trans -> 调用存储过程 -> SQL trans(对表运行查询( -> tgt 文件
存储过程流:
- 截断表
- 使用一些输入数据加载表
你真的需要平面文件源吗?它是否包含存储过程的任何参数?如果没有:
- 删除平面文件源
- 为表创建源限定符和源限定符
- 将存储过程作为 Pre-SQL 的一部分运行
否则,请在映射中创建两个单独的流,例如:
Flat File Source -> Stored Procedure call -> Flat File Target
Source table -> Expression -> Flat File Target