DSQL. Fetch cursor
Модераторы: m0p3e, edward_K, Модераторы
DSQL. Fetch cursor
В direct SQL создаю хранимую функцию "SQL FUNCTION ...". Объявляю в ней курсор "DECLARE CURSOR...". Открываю курсор, выбираю в нем первую запись "FETCH NEXT...". Как узнать, о результате выполнения FETCH? На @@FETCH_STATUS ругается, т.к. запрос жестко парсится (от этой псевдо "мультиплатформенности" одни проблемы).
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: DSQL. Fetch cursor
конечно будет ругаться на эту фишку )mwoland писал(а):На @@FETCH_STATUS ругается
"
В хранимых процедурах и функциях доступны глобальные переменные:
<global-variables> = #NOTFOUND | #OK | #ROWCOUNT
#NOTFOUND - статус операции FETCH, когда больше нет записей в выборке. Тип: булевский.
#OK - статус операции FETCH, когда данные были успешно выбраны. Тип: булевский.
#ROWCOUNT - количество записей в курсоре. Можно применять для получения количества записей. Тип: целое число.
Эти глобальные переменные реализованы в драйвере Oracle только для неявных курсоров.
"
Ну вроде как можно проверять на статусы...но видимо только для оракла )
Я как то пинал под скуль , но быстро бросил... что то вроде
if (FETCH NEXT FROM curtest INTO c10)=#OK
так как компилятор не пропускал такую конструкцию
а вообще курсоры в dsql это зло ) не для того он был придуман чтобы на курсоры "скатываться"...как то уж крайний случай совсем тока если