簡體   English   中英

如何將查詢的實際TEXT從Pentaho Spoon導出到Excel文件?

[英]How do I export the actual TEXT of a query from Pentaho Spoon into an Excel file?

我使用Pentaho Spoon進行數據集成(又名PDI)。 我的內部客戶希望將報告寫入excel文件,這很好,但是他還希望查看我在工作簿的單獨選項卡中使用的查詢。 有沒有一種方法可以使用Spoon將查詢本身的實際文本 (而不是結果)導出到.xlsx?

換句話說,如果一個查詢是

從80ies_shows.childrens_cartoons中選擇木偶,花生,雪碧

然后我想有一個顯示

從80ies_shows.childrens_cartoons中選擇木偶,花生,雪碧

您可以使用PDI表輸入從變量獲取數據。 嘗試定義一個將保留所有列名的變量(以及另一個包含表名的變量),然后嘗試將此變量傳遞給“表輸入步驟”。 例如:在表格輸入步驟中定義:

Select ${COLUMN VARIABLE} FROM ${TABLE NAME VARIABLE}

這將執行您的查詢。 現在,要在Excel中生成查詢,請使用“修改的Java腳本”步驟來重新創建相同的結構。 JS代碼片段如下所示:

LOOP i=1 till getInputRowMeta().size()

   var fields =getInputRowMeta().getValueMeta(i) /* This will give you the list of Input Columns along with the datatype e.g. Muppets String(100) */

END LOOP

從您的字段變量中刪除數據類型,並創建一個最終變量,其串聯為

var final_query="SELECT" + cleaned fields variable from the above JS + "FROM" + table name;

因此,您生成一個查詢,可以輕松地在excel輸出中輸出該查詢。

這是一個漫長的過程。 但是,除了使用上述方法生成查詢之外,我無法獲得任何其他解決方案。 希望這個解決方案對您有好處! :)

大多數現代數據庫都支持動態sql。 如果使用的是SQL Server,請查看sp_executesql。 所有這些意味着您的SQL代碼將存儲為字符串並以這種方式執行。

現在要在pentaho中使用動態SQL。

設置一個作業,該作業創建excel文件以進行輸出,並且還獲取通過作業調用或從文件系統傳遞的sql。 現在將sql傳遞到作業中的轉換中,該轉換將負責填充excel文件。 將sql寫入所需的任何工作表。

希望這可以幫助

暫無
暫無

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

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