我们处理关系源(Oracle)的情况。系统的开发方式是我们必须首先执行一个包,该包将允许从Oracle读取数据,用户将能够从select语句中获得结果。我试图找到一种方法来解决如何在信息映射中实现这一点。
我们尝试了什么
2。在PreSQL中我们编写了一个块,我们在其中执行包,在此之后(在同一个beging ... end block中)我们在select语句之上编写了insert语句 - 这是通过insert语句插入数据但是我不赞成这个解决方案因为源和目标都是假的,这将使人们在将来感到困惑。
是否有可能通过使用1st选项以某种方式实现此解决方案。
请帮助并建议。
谢谢
答案 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;
。