powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Вопрос новичка
8 сообщений из 8, страница 1 из 1
Вопрос новичка
    #34516565
Ilhom1976
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему у меня тут ошибка? Нельзя чтоли в функции объявлять курсор?
Как определить конец курсора? Этот пример на скорую руку. На самом деле функция большая...
-----------------------------------------------
DROP FUNCTION "GAZUSER"."FU1" ;

CREATE FUNCTION fu1()
RETURNS double
LANGUAGE SQL

BEGIN atomic
declare sss double;
declare sss1 double;
declare cu1 cursor for select saldo_n from osv where idab=1; ---Ошибка
OPEN CU1;
-- while (КАК ОПРЕДЕЛИТЬ КОНЕЦ КУРСОРА?)
-- DO
-- FETCH FROM CU1 INTO SSS;
-- SET SSS1=SSS1+SSS;
-- END WHILE;
CLOSE cu1;
RETURN sss1;
END
-----------------------------------------------
...
Рейтинг: 0 / 0
Вопрос новичка
    #34516681
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут читали?
Уже приводил вам, кажется, эту ссылку...
В процедуре можно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
DECLARE SQLCODE INT;
...
OPEN CU1;
FETCH CU1 INTO SSS;
WHILE (SQLCODE!= 100 ) DO
 ...
 FETCH CU1 INTO SSS;
END WHILE;
CLOSE cu1;
...
Рейтинг: 0 / 0
Вопрос новичка
    #34516729
Ilhom1976
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо...
Я поробовал в процедурах, получилось... Но почему не работает в функциях? Мне хотелось чтоб курсор использовалось в функции (UDF).
...
Рейтинг: 0 / 0
Вопрос новичка
    #34516739
Ilhom1976
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините... Я просмотрел таблицу, в которой сказано что UDF не поддерживает Declare cursor///

Подтвердите пож...
...
Рейтинг: 0 / 0
Вопрос новичка
    #34516827
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ilhom1976Извините... Я просмотрел таблицу, в которой сказано что UDF не поддерживает Declare cursor///

Подтвердите пож...SQL UDF - да.
В функции можно вызвать хранимую процедуру, которая, в свою очередь, может создавать и обрабатывать курсор.
Но лучше этого избегать, функции, они не для этого.
Но если очень хочется, то можно...
...
Рейтинг: 0 / 0
Вопрос новичка
    #34531848
Кутх
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще-то, в таких случаях гораздо красивее пользоваться оператором FOR:

Код: plaintext
1.
2.
3.
4.
5.
FOR lp AS SELECT saldo_n FROM osv WHERE idab= 1 
DO
  SET SSS1=SSS1+SSS;
END FOR;
RETURN sss1
...
Рейтинг: 0 / 0
Вопрос новичка
    #34531853
Кутх
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя сумму, само-собой, так не считают...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Вопрос новичка
    #36899882
shahruz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
Если можно, подскажите или покажите как делает , что использовать курсор в функции...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Вопрос новичка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]