powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / IBM DataStage: Аналог Ereplace в Parallel
6 сообщений из 6, страница 1 из 1
IBM DataStage: Аналог Ereplace в Parallel
    #37544614
Уставший2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

С удвилением обнаружил , что в Parallel нет функции Ereplace(которая есть в Server)

Подскажите аналог в Parallel
...
Рейтинг: 0 / 0
IBM DataStage: Аналог Ereplace в Parallel
    #37546997
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте "Convert", Convert("chars_to_replace", "replace_with_chars", InputLink.inputColumn)...
Тут хорошее пояснение, как она работает: Convert
Если не покатит - пишите Parallel Routine на C/C++, либо реализуйте логику javaTransformer стейджа.
Прямого аналога я тоже не знаю.
...
Рейтинг: 0 / 0
IBM DataStage: Аналог Ereplace в Parallel
    #37548586
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Convert не прокатит
надо писать функцию на C и встраивать
пример pxEreplace здесь
...
Рейтинг: 0 / 0
IBM DataStage: Аналог Ereplace в Parallel
    #37548713
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Peter KirillowConvert не прокатит
надо писать функцию на C и встраивать
пример pxEreplace здесь


там утечка памяти

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
#include "stdio.h" 
#include "string.h" 
#include "stdlib.h" 

char* pxEreplace(char *str, char *subStr, char *rep, int num) 
{ 
 char *result = (char *)malloc (sizeof(char *)); 
 int newlen = strlen(rep); 
 int oldlen = strlen(subStr); 
 int i = 0; 

 //replace all instances if value of num less than or equal to 0 
 if (num <= 0) 
 {num = strlen(str);} 

   while (*str) //for the complete input string 
   { 

    if (num != 0 ) // untill no more occurances need to be changed 
    { 
       if (strstr(str, subStr) == str ) 
       { 
          strcpy(&result[i], rep); 
          i += newlen; 
          str += oldlen; 
          num--; 
       } 
       else // if no match is found 
       { 
          result[i++] = *str++; 
       } 
    } 
    else 
    { 
       result[i++] = *str++; 
    } 
   } 

    result[i] = '\0'; //Terminate the string 
     return result; //Return the replaced string 
    free(result);   //free memory  
...
Рейтинг: 0 / 0
IBM DataStage: Аналог Ereplace в Parallel
    #37548714
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
return result; //Return the replaced string
free(result); //free memory
...
Рейтинг: 0 / 0
IBM DataStage: Аналог Ereplace в Parallel
    #37549919
Уставший2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответы!

В моем случае проще: в маппинге используется соединения с базой, вот я и использовал SQL-функцию
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / IBM DataStage: Аналог Ereplace в Parallel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]