cobol - 比较字段时 SOC7 异常
问题描述
我在比较 2 个字段时异常结束它们被定义为:
01 A PIC S9(8) COMP VALUE 0.
01 B PIC S9(5) COMP-3.
将要异常终止的语句是:
PERFORM VARYING A FROM 1 BY 1 UNTIL A > B
该语句在另一个循环中,并且 B 的值在那里增加。对于前两次迭代,B 的值是正确的。对于第 3 次迭代, B Displayed 的值是非数字的。
你能建议在这里可以做什么吗?
解决方案
我们有这种情况,我们需要比较 2 个不同的数字字段,有时非数字数据会从外部系统中爬进来。我们所做的是重新定义与PIC X(n)
字节大小等效的字段并NUMERIC
检查IF
语句。像这样的东西-
IF WS-FIELD1 NUMERIC AND WS-FIELD2 NUMERIC
IF WS-FIELD1 NOT = WS-FIELD2
*** both fields are numeric but not equal
ELSE
*** both fields are numeric & equal
END-IF
ELSE
IF WS-FIELD1-X NOT = WS-FIELD2-X
*** both fields are non-numeric & not equal
ELSE
*** both fields are non-numeric but equal
END-IF
END-IF
我不确定你为什么要使用PERFORM VARYING
数字字段,但我相信你可以将它放在上面代码的某个地方。
推荐阅读
- java - 通过方法 post 使用参数发出 HttpsURLConnection 请求
- laravel - 原始 Laravel 查询作为带有条件的集合
- python - Paramiko SSHClient.connect(...) 在 Windows 上与 Pyinstaller 打包时失败
- matplotlib - 如何仅显示每个第 n 个轴标签
- javafx - 旋转和旋转在 javafx 中是如何工作的?
- c# - 将 XML 值反序列化为对象
- grails - Grails4 url-mappings 坏了?
- tinymce - 如何使用按钮和 Jquery 禁用和启用 TINYMCE
- amazon-web-services - 在 AWS 中处理带有空格的参数
- python - 将嵌套的 JSON 转换为 pandas 数据框