Как получить одну запись в 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 ответа
Это было бы ответом ранее, но:
- Используйте курсор и извлекайте только первую запись, см. Курсор
- Использовать группу по
Выберите 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 как "ОК", так как значение всегда возвращалось (хотя и без гарантии). Я надеюсь, что любой такой код уже давно подправлен.