powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Возврат курсора из процедуры
3 сообщений из 3, страница 1 из 1
Возврат курсора из процедуры
    #38120720
ankalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.
Процедура Proc1 вызывает процедуру Proc2, которая возвращает курсор.
Проблема в том, что данный курсор не виден аналогично тому, как был бы виден курсор непосредственно из Proc1.
Например,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
CREATE PROCEDURE Proc2()
VERSION V1
ISOLATION LEVEL CS
RESULT SETS 1
LANGUAGE SQL
BEGIN
DECLARE CRS1 CURSOR WITH RETURN FOR SELECT 0 AS ID FROM SYSIBM.SYSDUMMY1;
OPEN CRS1;
END

CREATE PROCEDURE Proc1()
VERSION V1
ISOLATION LEVEL CS
DYNAMIC RESULT SETS 1
LANGUAGE SQL
BEGIN
CALL Proc1;
END


если вызвать Proc1, то Data Studio не показывает, что возвращаются какие-либо данные.

Если переписать

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE PROCEDURE Proc1()
VERSION V1
ISOLATION LEVEL CS
DYNAMIC RESULT SETS 1
LANGUAGE SQL
BEGIN
DECLARE V_LOCATOR RESULT_SET_LOCATOR VARYING;
CALL Proc1;
ASSOCIATE RESULT SET LOCATORS (V_LOCATOR) WITH PROCEDURE INTERNAL.RETURN_ERROR;
ALLOCATE CRS2 CURSOR FOR RESULT SET V_LOCATOR;
END



то Data Studio также не показывает, что возвращаются какие-либо данные.
Хотя, если дописать потом
Код: sql
1.
FETCH FROM CRS2 INTO ...


то данные из курсора корректно получаем, хотя сам он, конечно, не виден.
Не подскажете, как можно решить данную проблему?
DB2 10 for z/OS
...
Рейтинг: 0 / 0
Возврат курсора из процедуры
    #38120792
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ankalex,

Здравствуйте.

Попробуйте:
Код: plaintext
 DECLARE CRS1 CURSOR  WITH RETURN TO CLIENT FOR ...
...
Рейтинг: 0 / 0
Возврат курсора из процедуры
    #38120888
ankalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо!
Подобный вариант я пробовал, но Data Studio показывала, что синтаксис
Код: sql
1.
WITH RETURN TO CLIENT

некорректен, возможны варианты
Код: sql
1.
 WITH RETURN

и
Код: sql
1.
WITH RETURN TO CALLER

.
Решил не обращать внимания на студию, deploy прошел без ошибок и все получилось.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Возврат курсора из процедуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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