我如何在 LKM ODI12c(oracle 数据集成器)中通过 getcollist() 方法订购表达式
How could i order expression by getcollist() method in LKM ODI12c (oracle data integrator)
在LKM,
我使用 <%=odiRef.getTargetColList("\n", "[COL_NAME]", ",\n", "\n")%>
表达式来获取目标列,但列名称的顺序与源 table 相同。
例如:
Source table columns: Name, Surname, Age
Target table columns: Surname, Name, Age
LKM: <%=odiRef.getTargetColList("\n", "[COL_NAME]", ",\n", "\n")%>
---> Name, Surname, Age
期望的输出
---->Surname, Name, Age
如何按目标顺序获取目标列 table(姓氏、姓名、年龄)
谢谢。
您需要了解以下几点:
- 当您在 LKM 中使用任何 odiRef 表达式时,它会像在源代码中一样生成 columns/structures,因为 LKM 在源代码之上工作;
- 当您在 IKM 中使用任何 odiRef 表达式时,它可以生成 columns/structures 作为源或目标;
麦贝通过下图,你对以上两点比较了解了:
对于您的问题,您可以执行以下操作:
- 在 IKM 映射开始声明
<%=odiRef.getTargetColList("\n", "[COL_NAME]", ",\n", "\n")%>
;
- 在 LKM 中(任何部分,但没有映射开始)使用 IKM 中声明的变量。
因此,换句话说,您可以在 IKM 中生成该列,然后在 LKM 中使用它。
这个可以做到,因为执行顺序是下一个:
- 所有 KM 都有部分:映射开始、执行单元开始、执行单元主要、执行单元结束、映射结束;
- 此部分的每个部分都按以下顺序执行:映射从 LKM 开始,然后映射从 IKM 开始,然后执行单元从 LKM 开始,然后映射从 IKM 开始,依此类推。
- 每个 KM 的最后一部分 - 映射清理 - 如上所述执行,但前提是映射 > 物理 > 检查“出错时删除临时对象”
在LKM,
我使用 <%=odiRef.getTargetColList("\n", "[COL_NAME]", ",\n", "\n")%>
表达式来获取目标列,但列名称的顺序与源 table 相同。
例如:
Source table columns: Name, Surname, Age
Target table columns: Surname, Name, Age
LKM: <%=odiRef.getTargetColList("\n", "[COL_NAME]", ",\n", "\n")%>
---> Name, Surname, Age
期望的输出
---->Surname, Name, Age
如何按目标顺序获取目标列 table(姓氏、姓名、年龄)
谢谢。
您需要了解以下几点:
- 当您在 LKM 中使用任何 odiRef 表达式时,它会像在源代码中一样生成 columns/structures,因为 LKM 在源代码之上工作;
- 当您在 IKM 中使用任何 odiRef 表达式时,它可以生成 columns/structures 作为源或目标;
麦贝通过下图,你对以上两点比较了解了:
对于您的问题,您可以执行以下操作:
- 在 IKM 映射开始声明
<%=odiRef.getTargetColList("\n", "[COL_NAME]", ",\n", "\n")%>
; - 在 LKM 中(任何部分,但没有映射开始)使用 IKM 中声明的变量。
因此,换句话说,您可以在 IKM 中生成该列,然后在 LKM 中使用它。
这个可以做到,因为执行顺序是下一个:
- 所有 KM 都有部分:映射开始、执行单元开始、执行单元主要、执行单元结束、映射结束;
- 此部分的每个部分都按以下顺序执行:映射从 LKM 开始,然后映射从 IKM 开始,然后执行单元从 LKM 开始,然后映射从 IKM 开始,依此类推。
- 每个 KM 的最后一部分 - 映射清理 - 如上所述执行,但前提是映射 > 物理 > 检查“出错时删除临时对象”