1. 程式人生 > >Kettle Unable to get list of element types for namespace 'pentaho'

Kettle Unable to get list of element types for namespace 'pentaho'

我把公司的kettle5.0升級到7.0之後遇到了這個問題,困擾了很久,百度谷歌都查不到結果,所以只能自己查詢原因。

由於已經被搞好了,現在無法截圖了,總之就是下面這行報錯,遇到這個錯誤的同學估計也不需要看截圖就明白:

Unable to get list of element types for namespace 'pentaho'

點開Detail裡面,會看到是由於下面一句SQL程式碼導致的,

Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 
An error occurred executing SQL: 
SELECT ID_NAMESPACE FROM R_NAMESPACE WHERE NAME = ?
The data types text and nvarchar are incompatible in the equal to operator.

既然是SQL,那麼我把下面一句程式碼放進對應的DB查詢一下,會發現在query裡面的錯誤和上面一樣,都是:

The data types text and nvarchar are incompatible in the equal to operator./在等號操作符中,文字和nvarchar資料型別是不相容的。

也就是說上面的‘?’是nvarchar型別,而NAME欄位是text型別導致這個錯誤,我們確認一下:

執行下面這句

sp_help R_NAMESPACE

能看到NAME欄位的type是text(這裡我已經改過了,原本是text,所以加了個註釋)。

看到這裡答案就很簡單了,

直接ALTER TABLE R_NAMESPACE ALTER COLUMN NAME varchar(2000)

然後再測試,一切OK。