我应该如何通过Odi12c映射将数据发送到java方法
最近,我开始使用Odi12c过程,直到现在,我只使用映射。现在,我有一个不同表和联接的映射,我需要按列进行计算。为此,我必须使用java方法,因此我有如下内容:我应该如何通过Odi12c映射将数据发送到java方法,java,oracle,oracle12c,oracle-data-integrator,Java,Oracle,Oracle12c,Oracle Data Integrator,最近,我开始使用Odi12c过程,直到现在,我只使用映射。现在,我有一个不同表和联接的映射,我需要按列进行计算。为此,我必须使用java方法,因此我有如下内容: public void static List<Map<String, String>> seg( List<Map<String, String>> comp) { for (Map<String, String> map : comp) { if
public void static List<Map<String, String>> seg( List<Map<String, String>> comp) {
for (Map<String, String> map : comp) {
if (total > 0 && min1 != min1_fin) {
rest = total - min1;
total-=min1;
map.replace("min1_fin",rest);
map.replace("total",total);
} else {a= true}
if (a) { //(operation for next column)
if (total > 0 && min2 != min2_fin) {
rest = total - min2;
.
..
...
}
return comp;
}
我曾考虑过将所有内容都放在一个包中,将代码直接放在一个过程中或放在一个jar中并调用它(我仍然不知道如何)
但有可能做到这一点吗?如何将数据以这种方式发送到java方法,并在返回时读取数据?如果结果需要存储在数据库中,则使用java进行转换不是最佳模式。在SQL中这样做会更有效率 无论如何,如果您真的想使用Java,您可以通过绑定将数据从源命令传递到任何过程步骤或KM步骤的目标命令。这是关于它的文件:
确保在产品定义中选中“多连接”复选框。数据将通过执行代理。是否可以直接在SQL中执行?从架构的角度来看,这会简单得多。而且更易于维护。你能举一个源数据和预期结果的例子吗?我也认为用SQL做任何事情都要容易得多,但我不能,我必须用Java,因为我必须学会用Odi12c实现它(除了过程)。。。所以我就想这样做。我的数据就像我发布的示例一样,我有几个键,我使用它们进行每列减法(Total-min1),如果Total甚至大于零,我将在下一行减法相同的字段(min1)
KEY TOTAL MIN1 MIN2 MIN1_FIN MIN2_FIN
------ -------- -------- ------- --------- ----------
1 35,14 61,85 91,85 0 0
1 35,14 8,09 58,32 0 0
2 85,67 6 6 0 0
2 85,67 67,6 71,47 0 0