利用kettle組件匯入excel檔案到資料庫,kettleexcel
利用kettle組件匯入excel檔案到資料庫
1. 實現目標
把excel檔案內容匯入到目標表中;然後用java調用kettle的轉換。excel檔案的內容只有兩列,樣本如下:
資料庫表的結構如下:
2. 設計分析
需要產生uuid,這個在oracle中可以利用SYS_UUID()函數實現;
需要產生目前時間作為建立時間和修改時間,使用oracle的to_char(sysdate,’yyyy-MM-dd hh:mm:ss’)實現;
建立人及修改人的ID(兩者一致)、組織ID、來源檔案的ID;分別使用具名引數:
${USER_ID}、${ORG_ID}、${FILE_ID}、${FILE_NAME};
其中檔案名稱是讀取excel步驟要使用的;
即企業名稱和組織機構代碼兩個欄位;
3. 設計kettle的轉換檔
使用excel輸入步驟讀取excel內容,使用執行sql腳步步驟把記錄插入資料表中;
3.1. 設計步驟
從輸入類別中拖動excel input步驟到工作區,從腳步類別中拖動執行sql腳步到工作區;按shift鍵,從excel input步驟串連到sql腳步步驟。如:
3.2. 配置步驟
雙擊excel步驟,開啟配置對話方塊:
記得把oracle的jdbc驅動加到kettle的lib目錄中,可以測試連接。
雙擊該步驟開啟配置,首先選擇前面配置的資料庫連接,然後寫insert語句。需要注意的是字元類型要用引號括起來,即使是變數或?都需要括起來。
問號的內容需要在parameters中配置對應的流欄位;
因為需要執行多行,需要選中Execute for each row選項;
因為有變數,需要選中Variable substutution選項;
3.3. 配置參數
前面分析了需要四個參數,分別在兩個步驟使用到了,所以需要給轉換配置四個具名引數: USER_ID、ORG_ID、FILE_ID、FILE_NAME;
雙擊工作區空白部分開啟轉換配置,輸入相應的參數,也可以添加預設值,用於在kettle中進行測試使用,直到測試沒有錯誤。
至此,在kettle的設計工作已經做完,大家可以參考這篇部落格文章,關於動態查詢的詳細說明,地址:http://blog.csdn.net/neweastsun/article/details/39287809;
4. 在java調用轉換
調用之前,需要準備上述四個參數的內容,然後把參數傳給轉換執行;詳細內容參考這篇部落格文章:
http://blog.csdn.net/neweastsun/article/details/40886841