Как получить одну запись в DB2 с помощью программы cics и cobol

У меня есть стол 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 ответа

Это было бы ответом ранее, но:

  1. Используйте курсор и извлекайте только первую запись, см. Курсор
  2. Использовать группу по
       
     Выберите min(номер_номер) из room_table 
      где room_status='A' и room_type ='single'
     сгруппировать по room_status

Вы пытались использовать DB2 Fetch-first-clause?

замещать select first 1 row only с fetch first row only

-311 не -811: что-то не так с переменной хоста.

Для -811 мы бы "выбирали только первый ряд".

Сейчас,

до того, как эта функция стала доступной, многие кодировщики игнорировали предупреждения IBM и просто разрешили -811 как "ОК", так как значение всегда возвращалось (хотя и без гарантии). Я надеюсь, что любой такой код уже давно подправлен.

Другие вопросы по тегам