如何检查是否变量CL是空白的?

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

我有这样的一段代码。

IF         COND(%TRIM(&BLANK_VAR) *EQ '') THEN(DO)
            CALL       PGM(MY_PROGRAM) PARM(&BLANK_VAR)
ENDDO

我想检查是否&BLANK_VAR是一个空字符串。但是我的计划不会因为错误信息的编译:

* CPD0126 30  Operand not valid or operator missing in COND.

这是%TRIM的问题吗?我尝试使用%LEN,但它给了我声明,没有内部的实际数据的变量的lenght。

&BLANK_VAR的长度为10个字符。我必须做的:

IF COND(&BLANK_VAR *EQ '          ')
ibm-midrange control-language
1个回答
3
投票

你在这里有两个可能的解决方案。

首先是只需在两个单引号加一个实际空间:

IF         COND(%TRIM(&BLANK_VAR) *EQ ' ') THEN(DO)
            CALL       PGM(MY_PROGRAM) PARM(&BLANK_VAR)
ENDDO

二是不使用%TRIM,只是检查,如果它等于内置*BLANKS类型:

IF         COND(&BLANK_VAR *EQ *BLANKS) THEN(DO)
            CALL       PGM(MY_PROGRAM) PARM(&BLANK_VAR)
ENDDO

你得到错误的原因是两个'旁边相互充当转义单引号。这通常可以让你单引号嵌入到一个字符串,但在这种情况下,它就像你有一个无效的单字符字符串看起来编译器。无论是解决方案之一以上会工作。

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