powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Ошибка SQL0501N в результате выполнения SQL-процедуры
11 сообщений из 11, страница 1 из 1
Ошибка SQL0501N в результате выполнения SQL-процедуры
    #32943543
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вот такая процедура:

create procedure db2adm.Get_1
(
IN TABLE_NAME VARCHAR(100)
)
LANGUAGE SQL
RESULT SETS 1

BEGIN

declare SQL_CMD varchar(1000) default '';
declare error_flag INTEGER ;

declare continue handler for SQLSTATE '24501' set error_flag = 3;

set SQL_CMD = 'select * from '||TABLE_NAME;

PREPARE s1 from SQL_CMD;
if(1=1) then begin
declare c1 cursor with hold with return to client for s1;
open c1;
end;
end if;
END
Почему она выдает ошибку??
...
Рейтинг: 0 / 0
Ошибка SQL0501N в результате выполнения SQL-процедуры
    #32943722
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кажется надо s1 объявить.
...
Рейтинг: 0 / 0
Ошибка SQL0501N в результате выполнения SQL-процедуры
    #32943735
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TORTЕсть вот такая процедура:

create procedure db2adm.Get_1
(
IN TABLE_NAME VARCHAR(100)
)
LANGUAGE SQL
RESULT SETS 1

BEGIN

declare SQL_CMD varchar(1000) default '';
DECLARE s1 VARCHAR(1000);
declare error_flag INTEGER ;

declare continue handler for SQLSTATE '24501' set error_flag = 3;

set SQL_CMD = 'select * from '||TABLE_NAME;

PREPARE s1 from SQL_CMD;
if(1=1) then begin
declare c1 cursor with hold with return to client for s1;//честно говоря в документацию не смотрел и не помню, что значит with hold?
open c1;
end;
end if;
END
Почему она выдает ошибку??
попробуй так.
...
Рейтинг: 0 / 0
Ошибка SQL0501N в результате выполнения SQL-процедуры
    #32943747
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DECLARE С1 CURSOR WITH RETURN FOR s1;
Зачем все усложнять? :)
...
Рейтинг: 0 / 0
Ошибка SQL0501N в результате выполнения SQL-процедуры
    #32943783
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще проблема родилась в результате перехода с 7 версии на 8-ку...
На 7-ке все работало!!!
...
Рейтинг: 0 / 0
Ошибка SQL0501N в результате выполнения SQL-процедуры
    #32943811
q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
q
Гость
commit/rollback before fetch?
...
Рейтинг: 0 / 0
Ошибка SQL0501N в результате выполнения SQL-процедуры
    #32943812
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал:
create procedure db2adm.Get_1
(
IN TABLE_NAME VARCHAR(100)
)
LANGUAGE SQL
RESULT SETS 1

BEGIN

declare SQL_CMD varchar(1000) default '';
declare s1 varchar(1000);

set SQL_CMD = 'select * from '||TABLE_NAME;

PREPARE s1 from SQL_CMD;
if(1=1) then begin
declare c1 cursor with return for s1;
open c1;
end;
end if;


END

Коммандная строка вернула:

db2 => CALL db2ADM.GET_1('SHOP')


Набор результатов 1
--------------

Показан набор результатов....
12 записей выбрано.


SQL0501N Указатель, заданный в операторах FETCH или CLOSE, не открыт.
SQLSTATE=24501

Статус возврата = 0


Чего за фигня??? Стоит же перехватчик на SQLSTATE=24501!!!
...
Рейтинг: 0 / 0
Ошибка SQL0501N в результате выполнения SQL-процедуры
    #32943831
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TORTПопробовал:
create procedure db2adm.Get_1
(
IN TABLE_NAME VARCHAR(100)
)
LANGUAGE SQL
RESULT SETS 1

BEGIN

declare SQL_CMD varchar(1000) default '';
declare s1 varchar(1000);

set SQL_CMD = 'select * from '||TABLE_NAME;

PREPARE s1 from SQL_CMD;
if(1=1) then begin
declare c1 cursor with return for s1;
open c1;
end;
end if;


END

Коммандная строка вернула:

db2 => CALL db2ADM.GET_1('SHOP')


Набор результатов 1
--------------

Показан набор результатов....
12 записей выбрано.


SQL0501N Указатель, заданный в операторах FETCH или CLOSE, не открыт.
SQLSTATE=24501

Статус возврата = 0


Чего за фигня??? Стоит же перехватчик на SQLSTATE=24501!!!

Вообще не знаю играет это роль или нет, но у меня declare cursor стоит перед set & prepare предложениями... Попробуй так. :)
...
Рейтинг: 0 / 0
Ошибка SQL0501N в результате выполнения SQL-процедуры
    #32943854
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получилось.....Громадное спасибо!
...
Рейтинг: 0 / 0
Ошибка SQL0501N в результате выполнения SQL-процедуры
    #32943869
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TORTПолучилось.....Громадное спасибо!
:) ну значит играет.
...
Рейтинг: 0 / 0
Ошибка SQL0501N в результате выполнения SQL-процедуры
    #32943881
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оффтоп.
В опере айбиэмовский банер выглядит хреноватенько. :)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Ошибка SQL0501N в результате выполнения SQL-процедуры
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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