2010-11-15 31 views
2

我在發現Pentaho DI,我被這個問題困住了:Pentaho水壺:如何執行「插入...選擇」與SQL腳本步驟?

我想從一個csv文件插入數據到一個不支持「插入表」步驟的自定義數據庫。所以我想用sql腳本一步,一個請求:

INSERT INTO myTable 
SELECT * FROM myInput 

我的轉型將是這樣的:

transformation

我不知道如何從我的所有數據將csv注入到「myInput」字段中。

有人可以幫助我嗎?

感謝很多:)

+0

你能提供一些樣本數據嗎?也有可能知道輸出數據庫類型是什麼,以便它可以被測試? – rwilliams 2010-11-17 23:34:22

回答

4

當你第一次編輯SQL腳本步,點擊「獲取字段」按鈕。這將會將參數(來自csv的字段)加載到左下角的框中。刪除您不想插入的參數(字段)。

在你的sql腳本中寫下你的查詢,就像這樣,問號是你的參數。

insert into my_table (field1,field2,field3...) values ('?','?','?'...); 

選中複選框execute for each rowexecute as a single statement。這是真的。讓我知道如果您有任何問題,並且如果您提供示例數據,我會爲您提供一個示例ktr文件來查看。

+0

aka r-dub:+1很明確的答案。 – blunders 2010-11-30 03:39:35

0

使用以下代碼 與CTE爲 ( SELECT * FROM myInput ) 從CTE選擇* 成myTable的 ;

2

我想你錯了。你應該得到一個cvs文件輸入步驟和一個表輸出步驟。

正如rwilliams所說,在cvs文件輸入步驟獲取字段;更重要的是,在表輸出有一個數據庫字段選項卡。輸入字段映射是正確的選擇。猜測功能是驚人的。

此外,系統可以在目標連接Db服務器中不存在目標表時,生成目標表創建sql語句。