[英]ODI: Load Data from XML file & insert into Oracle Database
編輯
基於注釋,這是加載多個“相同xsd” xml文件的方法。
首先,必須確保所有XML都具有相同的XSD結構,否則可能會遇到奇怪的行為。
要處理多個XML文件,基本上這是您必須要做的:
1)提供一個特定的固定XML名稱,並基於該名稱創建拓撲。 2)創建一個“文件處理控件”以重命名並在讀取之前移動文件。 3)確保您執行正確的“同步”命令
例
您有XML文件:
/path/in/XML001.XML
/path/in/XML002.XML
/path/in/XML003.XML
將其中一個文件另存為XML_DATA.xml,並在某些“ / work /”路徑中使用XML_DATA.xml設置拓撲,並通過測試驗證其是否良好。
處理一個循環,其中:
1)將/path/in/XML001.XML移至/path/work/XMLDATA.XML(覆蓋或刪除舊的XMLDATA)
2)執行“從文件同步”
3)處理您的界面
4)執行“從數據庫同步”
5)將已處理的XML移至“ / path / processed /”
您的包裹將類似於:
[循環]> [MoveFile]> [ProcedureSync]> [接口]> [ProcedureSync]> [MoveFile]> [EndLoop]
關於Loop控件,有幾種方法可以實現,如果您有疑問,我可以給您發送提示。
希望有幫助!
編輯2
根據新信息,我將嘗試對所提出的問題進行更好的解釋。 這並不是一個艱巨的任務,但是對於仍然了解ODI工具的人來說,聽起來可能很難。
要點是要了解,對於ODI而言,XML文件就像數據庫一樣是數據源,而不是.csv這樣的文件。
1)處理XML文件時使用同步的示例。
每當訪問XML文件進行讀寫時,建議按照以下步驟進行操作:
2)文件處理控制
在“工具包”工具欄中的“包”中,有一個“文件”工具欄,可為您提供許多有用的文件工具,例如復制,刪除,移動,壓縮,解壓縮等。當您需要“控制”工具時,此工具很有用。您正在讀取,重命名等文件
您可以使用這些工具進行一些操作,它們非常易於理解。
3)回路控制
在ODI中,您可以使用包中的變量來開發循環。 有時,您可以僅使用odi過程來處理循環,這取決於您的需求。 根據我所掌握的有關您的上下文的一些信息,建議您首先嘗試使用變量。
因此,這是一個處理5次循環的示例。
1)創建一個數字變量。
2)將其拖到包中並將其值設置為0。
3)再次拖動它,將其配置為評估,將條件設置為等於5。
4)拖動任何具有的“測試”界面。
5)將KO Link鏈接到接口。 使用評估變量時,KO鏈接的行為類似於“假”條件。 在我們的例子中,如果計數器<5,它將指向接口。
6)再次拖動變量,這一次不用設置固定值,而是將增量設置為1。這將為該值加1。
7)將最后一個變量鏈接到評估變量。
因此,它將運行5次測試界面。 我在互聯網上發現一張圖片,說明了這一點:
您可以在以下位置找到有用的信息:“ https://dzone.com/articles/odi-11g-implementing-loops ”和“ https://blogs.oracle.com/dataintegration/using-variables-in-odi:-creating-包裝中的一個循環 ”。
最終包裝
歸根結底,您的“算法”將如下所示:
1)處理文件夾中文件的循環(這有點棘手,它可能需要一個jython代碼,您可以在此處找到相關的參考資料“ https://blogs.perficient.com/2014/08/01 /通過使用odi /的文件夾中的文件循環
2)將第一個文件移至/work/OMDATASOURCE.xml
3)SYNCHRONIZE FROM DATABASE命令。
4)處理您的界面
5)SYNCHRONIZE FROM FILE命令。
6)將OMDATASOURCE.xml移至“ / processed”或您創建的任何其他控件。
7)處理下一個文件。 您可能還希望使用表來控制某些內容,例如讀取的文件,處理的文件等。
8)結束循環(使用我發送的循環控制示例)。
ODI非常靈活且可擴展,您可以通過很多方式來做所有事情。
注意事項
希望這會有所幫助,
干杯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.