KETTLE使用javascript步驟過濾特殊字符
使用kettle在抽取大量excel數據時。總是遇到excel中有一些特殊字符,導致ExecuteSQL script步驟運行失敗,本文記錄一些方法過濾一些特殊字符。
同行有更好的方式實現,歡迎指點。共同學習。
完整的實現轉換截圖例如以下

1、 使用javascript步驟過濾全部string字段的字符
使用javascript步驟能夠通過代碼來實現,避免添加過多的步驟。且一次性過濾全部的字段;代碼例如以下:
for (vari=0;i<getInputRowMeta().size();i++){ /
var valueMeta= getInputRowMeta().getValueMeta(i);
if (valueMeta.getTypeDesc().equals("String")) {
var fStr= row[i];
fStr=replace(row[i],'\n','');
fStr=replace(fStr,'\r','');
fStr=replace(fStr,'\t',' ');
fStr=replace(fStr,';',';');
fStr=replace(fStr,'·','');
fStr=replace(fStr,"'","''");
row[i]=fStr;
}
}
2、 使用正則表達式。過濾反復字符
實際項目中遇到excel文件里有若干個-號。數量不確定。上面的方式就不行了,replace in String步驟能夠解決。useRegEx是開關。確定是否使用正則表達式。search 中填入表達式。replaceWith使用字符串去替換。
3、 截取長度
假設數據源的內容超過數據庫字段長度,插入報錯,使用String cut步驟能夠實現;

