Kettle 在應用中遇到的一些問題和解決方法
本文主要總結了 Kettle 在中文環境應用中遇到的一些問題, 問題列表還會不斷增加. 這些問題都是 kettle fans 提供的,歡迎參與討論.
問題1:
從excel 中抽取資料,插入到oracle 9 資料庫中,報下面的錯誤.
2008/06/25 13:30:57 - 插入更新資料表.0 - Insert row: ![field1=1.3965E8, field2=1,798, field3=2002/05/27 00:00:00.000]
2008/06/25 13:30:57 - oracl - ERROR : java.sql.SQLException: ORA-01722: 無效數字
2008/06/25 13:30:57 - oracl - ERROR : at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
原因:
從錯誤資訊可以看出,欄位 "field2" 對應的資料是 1,798,該欄位在資料庫中是 Number 型別,Oracle 不能將 1,798 格式的字串轉換為數字。
解決方法:
在 【Excel輸入步驟】-【欄位】 標籤下對應的欄位設定為正確的型別。將 "field2" 設定為 "Number" 型別(預設是 String 型別)。
問題2: 由 sqlserver 向 mysql 遷移資料, 遷移以後的資料是亂碼
原因: 這是由於mysql 的預設編碼是 utf-8, 而中文環境下客戶端的預設編碼一般都是 gbk 或 gb18030, 由於客戶端和伺服器編碼不一樣導致儲存到 mysql 的資料是亂碼
解決方法: 在新建連線視窗中有一個選項(option) 標籤, 在這個標籤下可以設定資料庫的一些連線引數. 在這裡我們要設定 mysql 的客戶端編碼引數, 引數名characterEncoding, 引數值gbk.
問題3: 在 SQLServer 表輸入步驟中使用以問號作為引數的 sql 語句 (引數的值從以前的步驟中獲得),向 mysql 資料庫匯入資料 (使用 mysql 表輸出步驟).
在執行的時候報告錯誤 Unable to get queryfields for SQL: AND e.LOCAL_TIME>? 00909 PRS INC Invalid character.
原因: 從錯誤語句看,是引數沒有被替換掉, 因為傳送給 mysql 伺服器的是這樣的語句 "AND e.LOCAL_TIME>?". 引數沒有被替換掉是因為從以前步驟中讀取的引數值是 null.
解決方法: 增加對 null 值的判斷, 可以有兩種方法, 如果這個值是從資料庫獲取的,一般的資料庫都提供了處理null值的函式,如 mysql 的ISNULL 函式. 如果這個值是從其他步驟獲得的,可以透過 Javascript 步驟進行判斷並轉換.
問題4: 使用 PDI 3.x 版本連線 DB2 資料庫時會報下面的錯誤
Error connecting to database: (using class com.ibm.db2.jcc.DB2Driver)
encoding not supported!!
原因: PDI 自帶的DB2 JDBC Driver 的版本比較低,無法連線 GBK 編碼的 DB2 資料庫。
解決方法: 將 DB2 資料庫的編碼改為 utf-8 編碼。或者找高版本的 DB2 JDBC Driver 來代替 PDI 自帶的DB2 JDBC Driver。
問題5: win2000 下執行,命令列太長導致spoon 或 kitchen 無法執行:
原因: spoon 執行時載入了太多的 jar,win2000 下對命令列的長度有限制
解決方法:1. 使用 java.ext.dirs 引數,將lib,libext,等 jar 路徑都設定到這個引數下。
2. 刪除libext 目錄下某些不需要的 jar,如各種資料庫的jdbc driver
3. 使用 launcher 見
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14366449/viewspace-1007516/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle10g在RAW上建庫遇到的問題和解決方法Oracle
- C#操作時區轉換時遇到的一些問題和解決方法分享C#
- 最近遇到的問題和解決辦法
- Composer 使用過程中遇到的問題和解決方案
- MVVM框架從WPF移植到UWP遇到的問題和解決方法MVVM框架
- 檢測和解決Android應用的效能問題Android
- 遇到問題的解決方法
- 面試中遇到的一些問題面試
- 在SQLServer處理中的一些問題及解決方法SQLServer
- Pentaho 使用中發現的幾個問題和解決方法
- 粘包問題原因和解決方法
- 刪除一個使用者遇到的問題和解決
- GT911驅動遇到的問題和解決方案
- Debian 11 關閉 swap 遇到的問題和解決方案
- workerman開發過程中遇到的一些常見的問題與解決方法
- Redis 常見的效能問題和解決方法Redis
- SSH 專案過程中遇到的問題和解決方法彙總 struts2 spring hibernateSpring
- MySQL實際應用中遇到的鎖問題薦MySql
- 解決在使用Amoeba遇到的問題
- 今天遇到的問題與解決方法
- vue工作中遇到的一些小問題Vue
- ElasticSearch安裝中遇到的一些問題Elasticsearch
- Redis常見的效能問題和解決方法UWRedis
- 手機端頁面在專案中遇到的一些問題及解決辦法
- CKEditor使用中遇到的問題解決
- Spark 環境問題記錄和解決方法Spark
- Firefox 使用常見問題和解決方法Firefox
- 專案中遇到的一些問題小結
- Tomcat中文亂碼問題的原理和解決方法Tomcat
- Phalcon填坑手冊:開發中會遇到的問題和解決方案(不斷更新)
- 在Linux中,如何診斷和解決系統啟動問題?Linux
- 實施vertex compression所遇到的各種問題和解決辦法
- Rails 3 升級 Rails 4 中遇到的問題及解決方法AI
- 工作中遇到的一些問題和處理
- 阿里面試中遇到的一些架構問題阿里面試架構
- iOS 開發中遇到的一些證書問題iOS
- 關於Java中分層中遇到的一些問題Java
- python學習遇到的困難和解決方法1Python