表輸入支持兩種不同的動態SQL方法:變量替換和從傳入流中插入數據。
變量替換
這是你目前已在表輸入配置:你把$ {}變量的地方,並在步驟初始化,該值作爲文本進行粘貼到SQL。
由於所有步驟在轉換中同時初始化,因此您的Javascript步驟沒有時間設置值。在PDI中,無法在同一轉換中設置和使用變量。從步驟
插入數據的第二種方法是用於通過選擇在表輸入「插入數據從步驟」選項的源極步驟。在這種模式下,表格輸入從選定的步驟中取一行,並將字段(按順序)插入插入問號(?)的SQL中。通常它需要一行,但您可以選擇執行每行。
這種方式應該爲您的方案工作:
- 將一個生成行的開始步驟,並將其設置產生1行。
- 連接到Javascript步驟。
- 在Javascript步驟中,將返回變量指定爲底部網格中的輸出字段,它將被添加到流中。
- 在表輸入,選擇在「從步驟插入數據」
- 在SQL的JavaScript的步驟,插入?在變量的位置。如果值是字符串,則可能需要單引號:WHERE column ='?'。
- 預覽轉換以查看結果,表輸入的預覽由於依賴關係而被禁用。
注:
- 步驟1和可能不需要如圖2所示,我不知道,如果JS步驟由自身產生的行。我喜歡明確這一點,通常將生成行命名爲「生成1行」。
- 如果你有一個現有的流或多個字段中插入,您可以使用選擇值步驟把字段需要將它們插入SQL命令。
已經有點不同做你的一步,但其對錶輸入 錯誤,請參閱圖(第二張圖片) –
@AlexanderChandra我的回答部分:在你的第二張照片,我看到周圍的沒有引號?在你的表格中輸入。您可能會收到錯誤「未知列......」。嘗試單引號。 – Cyrus