簡體   English   中英

我如何在 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")%>表達式來獲取目標列,但列名的順序是作為源桌子。 例如:

Source table columns: Name, Surname, Age
Target table columns: Surname, Name, Age

LKM: <%=odiRef.getTargetColList("\\n", "[COL_NAME]", ",\\n", "\\n")%>

---> 姓名、姓氏、年齡

期望輸出

---->姓氏、姓名、年齡

如何按目標表(姓、名、年齡)的順序獲取目標列

謝謝。

您需要了解以下幾點:

  • 當你在 LKM 中使用任何 odiRef 表達式時,它會像在源代碼中一樣生成列/結構,因為 LKM 在源代碼上工作;
  • 當您在 IKM 中使用任何 odiRef 表達式時,它可以在源或目標中生成列/結構;

或許你對以上兩點比較了解,通過下圖: 在此處輸入圖片說明

對於您的問題,您可以執行以下操作:

  • 在 IKM 映射開始聲明<%=odiRef.getTargetColList("\\n", "[COL_NAME]", ",\\n", "\\n")%> ;
  • 在 LKM(任何部分,但沒有 Mapping Begin)中使用 IKM 中聲明的變量。

因此,換句話說,您可以在 IKM 中生成該列,然后在 LKM 中使用它。

可以這樣做,因為執行順序是下一個:

  • 所有 KM 都有部分:映射開始、執行單元開始、執行單元主、執行單元結束、映射結束;
  • 本部分的每個部分都按以下順序執行:映射從 LKM 開始,然后映射從 IKM 開始,然后執行單元從 LKM 開始,然后映射從 IKM 開始,依此類推。
  • 每個 KM 的最后一部分 - 映射清理 - 如上所述執行,但前提是映射 > 物理 > 選中“出錯時刪除臨時對象”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM