在源限定符中选择stmt以及Informatica

时间:2017-08-23 17:11:14

标签: informatica informatica-powercenter

我们处理关系源(Oracle)的情况。系统的开发方式是我们必须首先执行一个包,该包将允许从Oracle读取数据,用户将能够从select语句中获得结果。我试图找到一种方法来解决如何在信息映射中实现这一点。

我们尝试了什么

1。在PreSQL中我们尝试执行包,在SQL查询中我们编写了select语句 - 数据没有加载到目标中。

2。在PreSQL中我们编写了一个块,我们在其中执行包,在此之后(在同一个beging ... end block中)我们在select语句之上编写了insert语句 - 这是通过insert语句插入数据但是我不赞成这个解决方案因为源和目标都是假的,这将使人们在将来感到困惑。

是否有可能通过使用1st选项以某种方式实现此解决方案。

请帮助并建议。

谢谢

2 个答案:

答案 0 :(得分:0)

为此目的,存储过程转换将其配置为执行源预加载

答案 1 :(得分:0)

Pre-Sql和数据读取不是同一会话的一部分。根据我的理解,这需要在同一个会话中完成,否则只为会话授予读取权。

您可以做的是创建一个存储过程/包,它将授予读访问权,然后返回数据。在SQ上将其用作SQL覆盖。这样SQ将照常读取数据。这个概念:

for (Task t : taskDao.getChildTask(foundTask)) {
    setResult(t, null);
}

并在源限定符上使用CREATE PROCEDURE ReadMyData AS BEGIN execute immediate 'GiveMeTheReadAccess'; select * from MyTable; END;