2

我有一个数组

DO WHILE (NOTEND = '1'B);
    IF (LENGTH(VALUELIST) > 8) THEN DO;
        VALUELIST = SUBSTR(VALUELIST,8);
    END;
    ELSE DO;
        NOTEND='0'B;
    END;
END;

现在我的问题是:Length(valuelist) 总是返回字符域的原始定义:CHAR(500) 因此是 500。不过我没有找到任何其他命令。

因此我的问题是:如何获得该字符串的剩余长度(即其内容而不是 char 数组本身)?

4

1 回答 1

1

Lasse V. Karlsen 提供的解决方案是一种方法。一个不同的,可能更直接的解决方案是使用CHAR VARYING(aka VARCHAR),它保持字符串的长度。赋值后,LENGTH(VALUELIST)将是正确的(比前面的长度少 8 个)。

于 2020-08-11T01:53:16.013 回答