|
Ошибка в хранимой sqlcode=-1822
|
|||
---|---|---|---|
#18+
Добрый день! Пишу хранимую процедуру на pl/sql. Процедура просто переписывает данные из одной таблицы в другую. Сначала удаляю данные, за како-нить период, из целевой таблицы, ставлю commit. Потом открываю курсор выборки из таблицы источника и тут же записываю их в целевую таблицу, commit. После этого вызываю другую процедуру, которая просто записывает в отдельную таблицу данные по записи - кол-во перенесенных строк, время и т.д., commit. Все данные переписываются, но после второго commit'а выдает ошибку sqlcode=-1822. Подскажите, пожалуйста, что это может быть и как решить эту проблему? P.S. Если при выборке ставлю ограничение в 999 строк, то все работает без ошибок, если 1000 и больше то ошибка. P.P.S. Версия IMB DB2 9.7 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 15:39 |
|
Ошибка в хранимой sqlcode=-1822
|
|||
---|---|---|---|
#18+
hansclaus, может не хватает места в какой-то временной области памяти (типа больше 32к), попробуйте COMMIT поставить так, чтобы частями записывало... http://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.messages.sql.doc/doc/msql01822n.html ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 16:05 |
|
Ошибка в хранимой sqlcode=-1822
|
|||
---|---|---|---|
#18+
Нет там всего 1188 записей, и оно их записывает, а валит при обращении к другой процедуре, для записи результата переноса. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 16:12 |
|
Ошибка в хранимой sqlcode=-1822
|
|||
---|---|---|---|
#18+
hansclaus, а курсоры все закрыты при обращении ко второй процедуре? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 16:31 |
|
Ошибка в хранимой sqlcode=-1822
|
|||
---|---|---|---|
#18+
Второй 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 16:36 |
|
Ошибка в хранимой sqlcode=-1822
|
|||
---|---|---|---|
#18+
hansclaus, посмотреть бы на процедурку... так сложненько. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 16:48 |
|
Ошибка в хранимой sqlcode=-1822
|
|||
---|---|---|---|
#18+
hansclaus, Commit закрывает курсор, определённый без опции with hold. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 17:06 |
|
Ошибка в хранимой sqlcode=-1822
|
|||
---|---|---|---|
#18+
knudsen, Спасибо за помощь. Проблема оказалась очень неожиданной! Во вторую процедуру я передаю текстовый параметр, который в той процедуре записываю в базу. Тип параметра varchar(80), я залез там за 80 и получилось переполнение. Теперь обрезаю его CAST'ом и все норм. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 17:06 |
|
|
start [/forum/topic.php?fid=43&gotonew=1&tid=1600566]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
143ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 248ms |
0 / 0 |