2015-01-05 4 views
0

В таблице данных я должен удалить эти [*,=,#,&,^,%] из данных таблицы. Я не должен удалить этиУдаление специальных символов из данных при перемещении данных из mssql в mysql с использованием интеграции данных pentaho

специальные символы [(,),/,.,@,',",:-,_,,\] при перемещении данных из mssql в mysql с помощью pentaho данных

интеграции

пример: -

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

month’s 
+0

Можете ли вы использовать функцию Sql Server для этого. –

ответ

0

Вы можете использовать «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 :)

+0

Я использовал вышеприведенный оператор, как и в User Defined Java Class iam, получивший ошибку при тестировании класса, такого как строка 1, столбец 5: ожидаемый идентификатор – SRI

+0

@SRI я изменил приведенный выше ответ, включив в него полный код. также прилагается пример кода и плагина (ссылка блога) ... пожалуйста, проверьте и посмотрите, работает ли это! Извините за задержку в ответе !! – Rishu

+0

Hi Rishu для вывода кода выше = output.replaceAll ("[^ a-zA-Z0-9 \\ s() /\\[email protected]_] +", "") ;. Здесь, если я хочу включить: (двоеточие) в данных, например, в 14:40. В данных он приходит в 24:00. Здесь я хочу посмотреть в 2:40 вечера, чтобы включить: где я могу включить это – SRI

0

Почему бы не использовать регулярные выражения в запросе, который вы используете для извлечения данных? Это упростит вашу трансформацию!

0

Вы можете использовать либо Regex Evaluation шаг или String operations шаг в Ложка enter image description here

Попробуйте их, и если вы все еще есть проблемы, комментарии ниже.

 Смежные вопросы

  • Нет связанных вопросов^_^