Вы можете использовать «User Defined Java Class «в 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()/\\[email protected]_]+","");
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 :)
Можете ли вы использовать функцию Sql Server для этого. –