Как мне узнать текущую оставшуюся длину строки? - PullRequest
1 голос
/ 01 августа 2020

У меня есть массив

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. Я не нашел другого хотя есть команда.

Таким образом, мой вопрос: как я могу получить оставшуюся длину этой строки (то есть ее содержимого, а не самого массива символов)?

1 Ответ

0 голосов
/ 11 августа 2020

Решение, предоставленное Лассе В. Карлсеном, является одним из методов. Другое, возможно, более простое решение - использовать CHAR VARYING (он же VARCHAR), который поддерживает длину строки. После присвоения правильным будет LENGTH(VALUELIST) (на 8 меньше предыдущей длины).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...