使用pentaho数据集成将数据从mssql移动到mysql时从数据中删除特殊字符

时间:2015-01-05 08:46:30

标签: sql-server sql-server-2008 pentaho kettle pentaho-cde

在表数据中,我必须从表数据中删除这些[*,=,#,&,^,%]。我不应该删除这些

使用[(,),/,.,@,',",:-,_,,\]数据将数据从mssql移至mysql

特殊字符pentaho

集成

示例: -

Gujarat is the country’s largest castor oil seed producing state. The m*ajor 

month’s 

3 个答案:

答案 0 :(得分:0)

您可以使用"用户定义的Java类"在Pentaho中,用replace函数写一个正则表达式。

public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException{
Object[] r = getRow();
if (r == null) {
    setOutputDone();
    return false;
}

if (first)
{
    first = false;
}

r = createOutputRow(r, 1);


if(get(Fields.In, "data").getString(r) != null) 
{
    String output= get(Fields.In, "data").getString(r);

    output= output.replaceAll("[^a-zA-Z0-9\\s()/\\.@-_]+","");

    get(Fields.Out, "output").setValue(r, output);

}else {
    get(Fields.Out, "output").setValue(r, "");
}

putRow(data.outputRowMeta, r);

return true;
}

数据是输入流数据,清理后的输出将在" 输出"柱。我分享了一个示例代码here

希望这能解决您的问题。 :)


修改我之前的答案以包含完整代码。话虽如此,我最近还创建了一个插件来处理特殊字符。你可以看看我的博客网站:

博客链接:https://anotherreeshu.wordpress.com/2015/01/07/special-character-remover-clean-your-data-of-special-characters-pentaho-kettle-step-plugin/

即使它只有1.0.0版本,但你可以尝试一下。它也可以帮助ypu:)

答案 1 :(得分:0)

为什么不在用于检索数据的查询中使用正则表达式?它将简化您的转型!

答案 2 :(得分:0)

您可以在Spoon enter image description here

中使用Regex Evaluation步骤或String operations步骤

尝试使用它们,如果下面仍有问题,请注意。