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

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

Подскажите аналог в Parallel
...
Рейтинг: 0 / 0
28.11.2011, 00:19
    #37546997
Hunterik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBM DataStage: Аналог Ereplace в Parallel
Попробуйте "Convert", Convert("chars_to_replace", "replace_with_chars", InputLink.inputColumn)...
Тут хорошее пояснение, как она работает: Convert
Если не покатит - пишите Parallel Routine на C/C++, либо реализуйте логику javaTransformer стейджа.
Прямого аналога я тоже не знаю.
...
Рейтинг: 0 / 0
28.11.2011, 18:21
    #37548586
Peter Kirillow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBM DataStage: Аналог Ereplace в Parallel
Convert не прокатит
надо писать функцию на C и встраивать
пример pxEreplace здесь
...
Рейтинг: 0 / 0
28.11.2011, 19:54
    #37548713
Новый Год
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBM DataStage: Аналог Ereplace в Parallel
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
28.11.2011, 19:54
    #37548714
Новый Год
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBM DataStage: Аналог Ereplace в Parallel
return result; //Return the replaced string
free(result); //free memory
...
Рейтинг: 0 / 0
29.11.2011, 14:04
    #37549919
Уставший2010
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IBM DataStage: Аналог Ereplace в Parallel
Спасибо за ответы!

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


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