1. 程式人生 > >kettle轉換裡面sql指令碼的執行順序

kettle轉換裡面sql指令碼的執行順序

##kettle轉換裡面的sql指令碼執行順序

  • 1:書上說sql裡面的選項如果勾選了執行每一行,會按連線順序執行。
  • 2:但是勾選了“執行每一行”,前面的流裡有多少條資料,sql就會執行多少次

    書中描述

在這裡插入圖片描述

測試圖片

在這裡插入圖片描述

  • 如果沒勾選執行每一行,會先執行一次sql指令碼,把資料庫裡面的 id變為0,導致第一個表輸入查不到資料。
  • 圖片中執行結果不代表實際執行順序。(從實際結果來看,不是按圖中順序來執行的)
  • 勾選了“執行每一行”,雖然會按順序執行,先是表輸入,然後是表輸出,最後是執行sql指令碼。但是sql指令碼會執行n(流裡的記錄數)次
  • 如果流裡面的記錄數大,最好把sql指令碼寫在外面,避免sql指令碼執行多次。
####如果需要轉換裡面的sql指令碼執行一次 ![](http://i.imgur.com/yV6k1hW.png)

輸出表設定了“提交記錄數”,出錯後之前提交的資料,只要設定了事物會回滾

###設定變數

前一個設定的變數會一直作用於後面的過程,知道遇到下一個設定同樣的變數位置。(前提是變數的作用範圍是“在根作業中有效”)

圖片

之前使用的MD檔案編輯器,有時候圖片不正常顯示,如果顯示不出來,點選這裡檢視上述圖片