2015-02-06 17 views
0

我想參數化ODI中的拓撲連接,以便使用變量一個接一個地加載多個相同結構的xml。但是我收到未知的令牌錯誤。在ODI中傳遞XML拓撲中的變量

JDBC URL:JDBC:單核苷酸多態性:?XML F = U:/SOTI_CLOUD/#B.xml

{#B是ODI具有可變文件名)

回答

0

使用#GLOBAL.B嘗試如果它是全局變量或#<PROJECT_NAME> .B如果它是項目變量。

另請檢查您的變量的歷史記錄設置。如果它設置爲「No History」,請確保在要訪問該XML文件的同一會話中聲明/刷新該變量。

+0

謝謝,但它沒有解決。我也嘗試使用全局變量和項目變量。我還在使用拓撲之前刷新變量。 實施例1:JDBC:單核苷酸多態性:?XML F = U:/SOTI_CLOUD/#GLOBAL.PP.xml 出2:JDBC:單核苷酸多態性:?XML F = U:/SOTI_CLOUD/#PRJGSSP_SOTI_DEVICE_MANAGEMENT.PP.xml – 2015-02-06 21:16:55

+0

莫非你運行日誌級別設置爲6?你是否可以正確填充? 您可能還需要用單引號將其包圍,才能將其解釋爲文本。 – JeromeFr 2015-02-10 10:20:35

+0

通過將它放在單引號中,它將它視爲一個字符串並考慮#PRJGSSP_SOTI_DEVICE_MANAGEMENT.PP作爲名稱,而不是變量的值。 – 2015-02-10 21:45:11

0

只是一種預感......

對於變量在JDBC URL被拾起您需要啓動一個單獨的場景。你的問題可能會有所不同,但要確保你有一個帶有變量聲明/刷新的外部循環,並且每當你刷新/增加它時,你啓動一個單獨的場景(而不僅僅是一個接口),使用這種構造的URL加載數據。

+0

Thanks.I嘗試了這種方式,現在沒有得到令牌錯誤。但仍然出現無效模式名稱的錯誤。我也將變量傳遞給物理模式。 JDBC網址爲:jdbc:單核苷酸多態性:XML F =/U02 /家庭/ odiftp/odiprojects/motsoti/fromsoti /#PRJGSSP_SOTI_DEVICE_MANAGEMENT.SOTI_DEVICE_FILE_NAME.xml&d =/U02 /家庭/ odiftp/odiprojects/motsoti/fromsoti /#PRJGSSP_SOTI_DEVICE_MANAGEMENT.SOTI_DEVICE_FILE_NAME .dtd&S =#PRJGSSP_SOTI_DEVICE_MANAGEMENT.SOTI_DEVICE_FILE_NAME與RO =假 模式(模式):#PRJGSSP_SOTI_DEVICE_MANAGEMENT.SOTI_DEVICE_FILE_NAME 模式(工作模式):#PRJGSSP_SOTI_DEVICE_MANAGEMENT.SOTI_DEVICE_FILE_NAME – 2015-02-09 17:07:33

+0

我會強烈建議,始終使用一個XML模式(從XSD逆轉或DTD)每個XML物理架構。根據我的經驗,其他任何東西都不會起作用(或者沒有多大意義)。 – msciwoj 2015-02-09 21:19:03

+0

你的意思是說在一個ODI的循環中不能加載具有不同名稱但結構相同的多個xml文件?我們在模式中傳遞變量名,因爲每個文件只與一個模式關聯。 – 2015-02-09 22:52:39