KETTLE使用java script步骤过滤特殊字符
使用kettle在抽取大量excel数据时,总是遇到excel中有一些特殊字符,导致ExecuteSQL script步骤执行失败,本文记录一些方法过滤一些特殊字符。同行有更好的方式实现,欢迎指点,共同学习。
完整的实现转换截图如下

1、 使用java script步骤过滤所有string字段的字符
使用java script步骤可以通过代码来实现,避免增加过多的步骤,且一次性过滤所有的字段;代码如下:
for (vari=0;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步骤可以实现;
