如何在Datastage中的并行例程中处理null

问题描述 投票:0回答:1

我已经定义并测试了一个自定义例程,该例程以所需的方式处理数据,但是我也希望能够处理传递到字段中的空值。无论我尝试什么,当将null传递给例程时,都会收到以下错误。

输入数据集'0'的字段'Data'为NULL。记录已删除。

我在例程中有一个陷阱来处理传递给它的NULL,但是我的理解是Datastage不在c型标准中存储NULL。我需要怎么做才能在例程中处理这些空值,以及如何停止数据阶段删除记录?我知道我可以为该字段添加NullToEmpty,但是我们有100个工作和列,因此,我强烈希望将其合并。

例如,这是例程的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.
        }
    }
}
c++ datastage
1个回答
0
投票

您应该使用IsNull()测试吗?

© www.soinside.com 2019 - 2024. All rights reserved.