0

我有一张桌子叫room_table

room_no room_status  room_type
-------|-----------|----------
1001   | A         |single
1002   | A         |single
1003   | B         |single

我在 CICS COBOL 程序中使用以下代码,但我正在获取 SQLerror code -811

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

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

任何想法?

4

3 回答 3

1

这之前会得到回答,但是:

  1. 使用游标并仅获取第一条记录,请参阅游标
  2. 使用分组依据
       
     从 room_table 中选择 min(room_no)
      其中 room_status='A' 和 room_type ='single'
     按房间状态分组
于 2014-04-26T22:30:21.293 回答
0

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

替换select first 1 row onlyfetch first row only

于 2014-04-26T22:44:39.687 回答
0

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

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

现在,

在此功能可用之前,许多编码人员忽略了 IBM 的警告并简单地允许 -811 为 OK,因为总是以某种方式返回一个值(尽管没有保证)。我希望任何这样的代码早就被修改过。

于 2015-03-29T17:33:03.903 回答