簡體   English   中英

如何在Talend Open Studio作業中將SQL查詢作為上下文變量傳遞

[英]How to pass SQL query as a context variable in Talend Open Studio job

我正在創建一個使用talend open studio將數據從數據庫拉到CSV文件的作業。 有100個表,表中的數據類型和列數均不同,我想通過一個作業和可自定義的SQL查詢從數據庫表中提取數據。 我知道如何創建和使用上下文變量。

如果我理解正確,則應該在每行-option處使用tMap的重新加載,並在Excel工作表或tFixedFlowInput中定義表名稱。

tMap設置

整個工作和結果

SQL腳本:

"SELECT TOP(1) Name,  Code from mdm." + (String)globalMap.get("row4.table")

我以Microsoft SQL Server為例,但是相同的腳本也可以與MySQL一起使用。

您可以簡單地使用上下文變量,該變量是通過tWhicheverDatabaseInput中的--context_param參數設置的。 例如,定義上下文變量“ my_sql”,您可以在命令行中將其設置為

my_job.sh --context_param my_sql="select a,b,c from a_test_table"

然后使用context.my_sql作為數據庫輸入組件中的SQL。

但是,正如garpitmzn所述,您將需要動態模式才能在Talend中實際使用此未知結構。 此功能僅在企業版中存在。

如果您可以使用企業版,則只需聲明一個類型為“ Dynamic”的列,即可在其余流程中進行傳遞。

  1. 將本地上下文聲明為字符串類型的查詢。

  2. 使用變量查詢准備上下文文件: query=select name from employee

  3. 執行查詢: toraclecomponent use context.query

當您具有字符串類型的where條件時,查詢將引發一些錯誤。 需要對此進行更多調查。 否則它將起作用。

暫無
暫無

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

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