KETTLE使用javascript步骤过滤特殊字符
2015-06-11 07:50
531 查看
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步骤可以实现;
使用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步骤可以实现;
相关文章推荐
- JavaScript中变量提升是语言设计缺陷
- 前台JavaScript根据回车和控件ID调用后台函数
- js 代码片段
- @JsonIgnore
- json 特殊字符解析问题
- JavaScript中实现map功能代码分享
- JavaScript中getUTCSeconds()方法的使用详解
- 在JavaScript中操作时间之getYear()方法的使用教程
- 简介JavaScript中的setDate()方法的使用
- JavaScript中setFullYear()方法的使用详解
- 简介JavaScript中的setHours()方法的使用
- javascript 常见功能汇总
- JavaScript中的setMilliseconds()方法使用详解
- 在JavaScript中处理时间之setMinutes()方法的使用
- JavaScript中setMonth()方法的使用详解
- 详解JavaScript中setSeconds()方法的使用
- 简介JavaScript中的setTime()方法的使用
- JavaScript中的setUTCDate()方法使用详解
- 全世界最短IE判定if(!+[1,])的解释
- 使用Webuploader和图片Base64特性完成IE8及其它浏览器的头像上传