如何使用cics和cobol程序在DB2中获取一条记录

时间:2014-04-26 15:37:23

标签: db2 cobol cics

我有一张名为room_table

的表格
room_no room_status  room_type
-------|-----------|----------
1001   | A         |single
1002   | A         |single
1003   | B         |single

我在CICS COBOL程序中使用以下代码,但我得到了SQL error code -811

    select room_no 
    from room_table 
    where room_status='A' 
      and room_type ='single'
    fetch first 1 row only

我也使用了游标概念,但它返回error code -311

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

之前已经回答过但是:

  1. 使用游标并仅获取第一条记录,请参阅Cursor
  2. 使用分组
  3.        
         Select min(room_no) from  room_table 
          where room_status='A' and room_type ='single'
         group by room_status
    

答案 1 :(得分:0)

您是否尝试过使用DB2 Fetch-first-clause

select first 1 row only替换为fetch first row only

答案 2 :(得分:0)

-311不是-811:主机变量有问题。

对于-811,我们将“仅获取第一行”。

现在,

在此功能可用之前,许多编码员忽略了IBM的警告并且只允许-811为OK,因为某种值总是以某种方式返回(虽然没有保证)。我希望任何这样的代码早已被提及。