Гость
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Ошибка в хранимой sqlcode=-1822 / 8 сообщений из 8, страница 1 из 1
03.08.2016, 15:39
    #39285480
hansclaus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в хранимой sqlcode=-1822
Добрый день!
Пишу хранимую процедуру на pl/sql. Процедура просто переписывает данные из одной таблицы в другую. Сначала удаляю данные, за како-нить период, из целевой таблицы, ставлю commit. Потом открываю курсор выборки из таблицы источника и тут же записываю их в целевую таблицу, commit. После этого вызываю другую процедуру, которая просто записывает в отдельную таблицу данные по записи - кол-во перенесенных строк, время и т.д., commit. Все данные переписываются, но после второго commit'а выдает ошибку sqlcode=-1822.
Подскажите, пожалуйста, что это может быть и как решить эту проблему?

P.S. Если при выборке ставлю ограничение в 999 строк, то все работает без ошибок, если 1000 и больше то ошибка.

P.P.S. Версия IMB DB2 9.7
...
Рейтинг: 0 / 0
03.08.2016, 16:05
    #39285524
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в хранимой sqlcode=-1822
hansclaus,

может не хватает места в какой-то временной области памяти (типа больше 32к), попробуйте COMMIT поставить так, чтобы частями записывало... http://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.messages.sql.doc/doc/msql01822n.html
...
Рейтинг: 0 / 0
03.08.2016, 16:12
    #39285531
hansclaus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в хранимой sqlcode=-1822
Нет там всего 1188 записей, и оно их записывает, а валит при обращении к другой процедуре, для записи результата переноса.
...
Рейтинг: 0 / 0
03.08.2016, 16:31
    #39285550
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в хранимой sqlcode=-1822
hansclaus,

а курсоры все закрыты при обращении ко второй процедуре?
...
Рейтинг: 0 / 0
03.08.2016, 16:36
    #39285557
hansclaus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в хранимой sqlcode=-1822
Второй commit закрывает курсор, если закрываю курсор перед этим commit'ом возникает ошибка:
The cursor specified in a FETCH statement or CLOSE statement is not open or a cursor variable in a cursor scalar function reference is not open.. SQLCODE=-501
...
Рейтинг: 0 / 0
03.08.2016, 16:48
    #39285569
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в хранимой sqlcode=-1822
hansclaus,

посмотреть бы на процедурку... так сложненько.
...
Рейтинг: 0 / 0
03.08.2016, 17:06
    #39285589
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в хранимой sqlcode=-1822
hansclaus,

Commit закрывает курсор, определённый без опции with hold.
...
Рейтинг: 0 / 0
03.08.2016, 17:06
    #39285590
hansclaus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в хранимой sqlcode=-1822
knudsen,

Спасибо за помощь.

Проблема оказалась очень неожиданной!
Во вторую процедуру я передаю текстовый параметр, который в той процедуре записываю в базу. Тип параметра varchar(80), я залез там за 80 и получилось переполнение. Теперь обрезаю его CAST'ом и все норм.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Ошибка в хранимой sqlcode=-1822 / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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