各种DB2数据类型的等效COBOL主机变量是什么?
问题:当主机变量和SELECT语句中的列数不匹配时,COBOL-DB2程序将如何工作?
解
如果列数和主机变量数不匹配,查询将失败。例如,如果我们在处理ORDERSDB2表的COBOL-DB2程序中使用了以下查询。
示例
EXEC SQL
SELECT ORDER_ID,
ORDER_AMOUNT,
ORDER_DATE,
ORDER_STATUS
INTO :WS-ORDER-ID,
:WS-ORDER-AMOUNT,
:WS-ORDER-DATE,
FROM ORDERS WHERE ORDER_DATE = ‘2020-09-15’
END-EXEC列和主机变量的数量不匹配。SELECT语句中总共使用了4列,并且仅使用了3个主机变量。在这种情况下,查询将失败,并且可以通过两种方式检测这种情况。
如果不匹配,SQLCA的SQLWARN3字段将获得值“W”。
在某些安装中,当不匹配时,SQLCA的SQLCODE字段将错误代码显示为-804。
我们可以使用IF条件来检查SQLWARN3或SQLCODE中的值,并相应地指导程序处理。
以下是一个示例。
示例
IF SQLWARN3 = ‘W’ PERFORM X00-ABEND-SECTION ELSE PERFORM A100-SELECT-RESULT END-IF
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西