Вызов селективной процедуры с параметром как набора данных
Добавлено: 27 сен 2013, 21:34
Здравствуйте
FB 2.5 диалект 3
Подскажите, почему такой запрос работает корректно:
А вот такой - нет:
- исключение
"The cursor identified in the UPDATE or DELETE statement is not positioned on a row.
no current record for fetch operation."
Процедура GET_CLIENT_ADDRESS формирует строку адреса (из разных таблиц), присваивает её выходной переменной, далее Suspend; Exit; .
Если ту же процедуру вызывать внутри другой, то второй запрос работает, но лишь при условии, что входным параметром не поле таблицы, а переменная:
Спасибо
отредактировано модератором: - для оформления кода есть специальный тег в верхнем меню редактора текста.
FB 2.5 диалект 3
Подскажите, почему такой запрос работает корректно:
Код: Выделить всё
select c.nclient_id, c.vaccount,
( select a.VADDRESS_SHORT from GET_CLIENT_ADDRESS(c.nclient_id) a ) as VADDRESS_SHORT
from client c
order by c.vaccount;
Код: Выделить всё
select c.nclient_id, c.vaccount, a.VADDRESS_SHORT
from client c, GET_CLIENT_ADDRESS(c.nclient_id) a
order by c.vaccount;
"The cursor identified in the UPDATE or DELETE statement is not positioned on a row.
no current record for fetch operation."
Процедура GET_CLIENT_ADDRESS формирует строку адреса (из разных таблиц), присваивает её выходной переменной, далее Suspend; Exit; .
Если ту же процедуру вызывать внутри другой, то второй запрос работает, но лишь при условии, что входным параметром не поле таблицы, а переменная:
Код: Выделить всё
... GET_CLIENT_ADDRESS(:INP_nclient_id) ...
отредактировано модератором: - для оформления кода есть специальный тег в верхнем меню редактора текста.