2016-05-03 36 views
2

我想在一個從SQL Server存儲過程獲取FIELDS並將其插入到MySql表中的Kettle中構建一個轉換。從SQL Server獲取字段存儲過程

問題是我找不到獲取存儲過程「字段」的方法。據我所知,呼叫DB程序任務/ OUT參數,預計,這不是我的情況,所以我試圖用「執行SQL語句」用下面的SQL:

exec credisfera.dbo.sp_insere_parcelas @dt_ref = '2016-05-03' 

有沒有辦法實現這個?

+0

如果將上述語句放入「表輸入」步驟中,請右鍵單擊並選擇「輸出字段...」 ,你會得到什麼?PDI應該自動獲取SP的元數據。它適用於我。 –

+0

嘿,Brian,我結束了在另一個表中插入我需要的所有東西,然後使用Table輸入來讀取它。很明顯。:)如果你願意,請把它作爲答案發布,以便我可以給你信用。 – jfneis

回答

4

只需在Table input步驟中輸入exec聲明即可。執行後(或「輸出字段...」,PDI將從JDBC驅動程序獲取元數據。

+2

但是,這樣做會產生一些副作用 - 每次pentaho在設計時需要字段元數據信息時都會調用該過程。如果您不想在轉換中使用這些副作用,請考慮使用「動態SQL行」步驟 - 它允許您爲元數據提供模板SQL請求,因此您可以使用SELECT''作爲Field1,0作爲Field2等。並對字段列表進行硬編碼。 – morincer

+0

@morincer,你是對的。我們的情況是隻讀過程,所以沒有問題。但無論如何,好點。 – jfneis