В настоящее время я пытаюсь создать программу, в которой курсор читает поля var char таблицы «описание» DB2 и курсор, который читает поле var char «префикс» из другой таблицы. Затем мне нужно проверить каждое описание, чтобы увидеть, существует ли какой-либо из префиксов в начале описания, и если он существует, заменить его одним пробелом.
Значения рабочего хранилища для них:
03 WS-PFIX.
49 WS-PFIX-LEN PIC S9(4) COMP.
49 WS-PFIX-TEXT
03 WS-DESC.
49 WS-DESC-LEN PIC S9(4) COMP.
49 WS-DESC-TEXT PIC X(100).
Я пробовал следующий код:
INSPECT WS-DESC-TEXT(1:WS-PFIX-LEN)
REPLACING WS-PFIX-TEXT TO " "
Это не работает, потому что WS-PFIX-TEXT имеет фиксированную длину в 100 символов, поэтому совпадения нет, так как он включает в сравнение все конечные пробелы. Я также пробовал это:
INSPECT WS-DESC-TEXT(1:WS-PFIX-LEN)
REPLACING WS-PFIX-TEXT(1:WS-PFIX-LEN) TO " "
Но компилятору не нравится использование подстроки в строке REPLACING.
Кто-нибудь знает какие-либо альтернативы, которые можно использовать для этого, которые будут работать? Я рыскал по интернету целую вечность и ничего не мог найти.
Спасибо