Я определил и протестировал специальную процедуру, которая обрабатывает данные так, как я хочу, но я также хочу иметь возможность обрабатывать нулевые значения, переданные в поле. Независимо от того, что я, кажется, пытаюсь, я получаю следующую ошибку, когда в подпрограмму передается значение null.
Поле «Данные» из входного набора данных «0» имеет значение NULL. Запись сброшена.
У меня есть ловушка в программе для обработки переданного в нее NULL, но я понимаю, что Datastage не хранит NULL в стандарте типа c. Что мне нужно сделать, чтобы обработать эти нули в подпрограмме, и как я могу остановить удаление записи из данных? Я понимаю, что я мог бы просто добавить NullToEmpty для этого поля, но у нас есть сотни заданий и столбцов, поэтому я бы предпочел сильно консолидировать это.
Например, вот код C ++ для подпрограммы. trimSpace определен и работает нормально, поэтому опускается.
char * BlankToValue(char *InStr, char *RepStr)
{
if ((InStr == NULL) || (InStr[0] == '\0')) // Check for null pointer at first character of input string.
{
return RepStr; // Return replacement string if true. This is to prevent unnecessary processing.
} else
{
trimSpace(InStr); // Call previously established function.
if (InStr[0] == '\0') // Checks first character of cleaned input string for null pointer.
{
return RepStr; // Return replacement string if true.
} else
{
return InStr; // Return new input string if false.
}
}
}