如何使用cics和cobol程序在DB2中获取一条记录
我有一张桌子叫如何使用cics和cobol程序在DB2中获取一条记录,db2,cobol,cics,Db2,Cobol,Cics,我有一张桌子叫room\u table room_no room_status room_type -------|-----------|---------- 1001 | A |single 1002 | A |single 1003 | B |single 我在CICS COBOL程序中使用以下代码,但我得到的是SQL错误代码-811 select room_no from room_table w
room\u table
room_no room_status room_type
-------|-----------|----------
1001 | A |single
1002 | A |single
1003 | B |single
我在CICS COBOL程序中使用以下代码,但我得到的是SQL错误代码-811
select room_no
from room_table
where room_status='A'
and room_type ='single'
fetch first 1 row only
我也使用了游标概念,但它返回错误代码-311
有什么想法吗?这以前可能会得到回答,但是:
将
仅选择第一行
替换为仅获取第一行
-311不是-811:主机变量有问题
对于-811,我们将“仅获取第一行”
现在,
在这个特性可用之前,许多编码人员忽略了IBM的警告,只允许-811作为OK,因为总是以某种方式返回一个值(尽管没有保证)。我希望任何这样的代码早就被修改过。除了您的语句在语法上不正确(select first…子句无效)之外,它不可能导致SQLCODE-811或-311。同意,通过SPUFI或QMF运行它进行检查-311来自光标(我们在这里没有看到)。在上面的评论之后,Q被编辑了。您是在测试SQLCODE还是它被移动到的变量?搬家了吗?你不应该只在第一排得到a-811。你选择什么?此查询是否已被改写?抱歉,我仅使用了fetch前1行 Select min(room_no) from room_table where room_status='A' and room_type ='single' group by room_status