如何检查 CL 中的变量是否为空?
How to check if variable is blank in CL?
我有这段代码。
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
但它给了我声明的变量的长度,而不是内部的实际数据。
&BLANK_VAR
的长度为 10 个字符。
我必须做:
IF COND(&BLANK_VAR *EQ ' ')
解决方案是简单地在你的两个单引号中添加一个实际的 space:
IF COND(%TRIM(&BLANK_VAR) *EQ ' ') THEN(DO)
CALL PGM(MY_PROGRAM) PARM(&BLANK_VAR)
ENDDO
您收到错误的原因是彼此相邻的两个 '
充当转义单引号。这通常允许您将单引号嵌入到文字字符串中,但在这种情况下,编译器看起来就像您有一个无效的单字符串。
我有这段代码。
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
但它给了我声明的变量的长度,而不是内部的实际数据。
&BLANK_VAR
的长度为 10 个字符。
我必须做:
IF COND(&BLANK_VAR *EQ ' ')
解决方案是简单地在你的两个单引号中添加一个实际的 space:
IF COND(%TRIM(&BLANK_VAR) *EQ ' ') THEN(DO)
CALL PGM(MY_PROGRAM) PARM(&BLANK_VAR)
ENDDO
您收到错误的原因是彼此相邻的两个 '
充当转义单引号。这通常允许您将单引号嵌入到文字字符串中,但在这种情况下,编译器看起来就像您有一个无效的单字符串。