Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Добрый день! Может кто-либо сталкивался с похожей проблемой? DB2/NT 8.2.7 Для новых полей, добавленых в таблицу BAZA05A необходимо выполнить присвоение '' (пусто знак), иначе он остается как NULL. Если поле как NULL, то при выполнение SQL запросов на получение полного адреса при выполнении в приложении операции сцепления получается пустое поле для ранее введенных данных (до реорганизации).Если будет присвоено поле '', то операция сцепления работает корректно. Вот SQL-запрос --- Шаг 1. Соединение с базой CONNECT TO CLI_BDR13 user db2admin using xxxxxxxx; ---Шаг 2.Cтабилизировать, другим работать нельзя QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS; ---Шаг 3.Для пустых полей(NULL) выполнить присвоение '' (пусто знак) UPDATE DB2ADMIN.BAZA05A SET REGION='' WHERE REGION IS NULL; UPDATE DB2ADMIN.BAZA05A SET NPUNKT='' WHERE NPUNKT IS NULL; UPDATE DB2ADMIN.BAZA05A SET RAION='' WHERE RAION IS NULL; UPDATE DB2ADMIN.BAZA05A SET S_REGION='' WHERE S_REGION IS NULL; UPDATE DB2ADMIN.BAZA05A SET S_NPUNKT='' WHERE S_NPUNKT IS NULL; UPDATE DB2ADMIN.BAZA05A SET S_RAION='' WHERE S_RAION IS NULL; UPDATE DB2ADMIN.BAZA05A SET S_GOROD='' WHERE S_GOROD IS NULL; UPDATE DB2ADMIN.BAZA05A SET S_ULICA='' WHERE S_ULICA IS NULL; ---- Шаг 4. отменить стабилизацию, нехай работают UNQUIESCE DATABASE; --- Шаг 5.Разорвать соединение CONNECT RESET; Вот сообщение DB2/NT 8.2.7 11.02.2009 18:50:30 UPDATE DB2ADMIN.BAZA05A SET S_ULICA='' WHERE S_ULICA IS NULL 11.02.2009 18:50:37 SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011 Увеличил размер журнала транзакций (LOGFILSIZ) до 16384 - не помогло!?! Запрос (Шаг 3) запускал по одному оператору - не помогло!?! Подскажите,пож.что делать? C уважением,Александр В.Мидонов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 14:04 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Я так делаю (кстати, не только из-за размера журнала, но и блокировок меньше, и выполняется быстрее) Разбиваю один UPDATE на много мелких, используя какой-нибудь критерий. примерно так UPDATE DB2ADMIN.BAZA05A SET REGION='' WHERE REGION IS NULL and serial_num>=0 and serial_num <10000; commit work; UPDATE DB2ADMIN.BAZA05A SET REGION='' WHERE REGION IS NULL and serial_num>=10000 and serial_num <20000; commit work; UPDATE DB2ADMIN.BAZA05A SET REGION='' WHERE REGION IS NULL and serial_num>=20000 and serial_num <30000; commit work; итд Вместо serial_num нужно подставить свое поле (проиндексированное). У меня serial_num - это ПК. PS Autocommit включен, надеюсь? Если нет, то может все проще - поставить commit work после каждого UPDATE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 15:14 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Добрый день. Alex W.MidonowПодскажите,пож.что делать?Если вы никуда не спешите: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 16:36 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Добрый день Mark Barinstein! Простите за дурацкий вопрос. Приведенный Вами код прописать в SQL - запросе на шаге 3, вместо моего кода? C уважением,Александр В.Мидонов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 17:02 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Alex W.MidonowПриведенный Вами код прописать в SQL - запросе на шаге 3, вместо моего кода?Сначала вы создаёте процедуру huge_upd. Эта процедура может быть использована для обновления одного строкового поля любой таблицы. Процедура будет коммитить изменения через каждые N записей (3-й параметр). Использовать её можно на вашем шаге 3: вместо: Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 17:24 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Добрый день Mark Barinstein! Простите за еще один дурацкий вопрос. "Сначала вы создаёте процедуру huge_upd..." Как это сделать? Куда ее поместить? Если я правильно понял,я и в дальнейшем смогу ее использовать для других БД? Обычно я делаю так: ВАТ-файл rem Вызов скрипта erase ScrCall.log DB2CMD.exe DB2SETCP.BAT DB2.EXE -fUP_BAZA.sql -t -lScrCall.log где UP_BAZA.sql SQL-запрос ScrCall.log - сообщения ВАТ-файла C уважением,Александр В.Мидонов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 17:49 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Помещаете в файл crt_proc.ddl команды: Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 17:55 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Добрый день Mark Barinstein! Я Вам еще не надоел? А как поместить в crt_proc.ddl команды? Пож.если располагаете временем! C уважением,Александр В.Мидонов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 18:13 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Alex W.Midonow, это обычный текстовый файл. Выделите текст, создайте в любом редакторе файл и вставьте в него скопированный текст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 09:54 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Alex W.MidonowА как поместить в crt_proc.ddl команды?С копируйте текст процедуры, который приведён на этой странице, в буфер обмена windows, создайте файл crt_proc.ddl (например, с помощью текстового редактора notepad) и вставьте в этот файл содержимое буфера обмена. Вы умеете пользоваться буфером обмена в windows? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 09:57 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Кстати, если кому интересно. Эту процедуру можно немного модифицировать на общий случай: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Код: plaintext 1. 2. Но, чтобы fetch сработал, в нём мы должны указать хотя бы 1 переменную (dummy_var в данном случае), для чего на первом месте в селекте должна быть всегда какая-то int константа (или int выражение). Поля, которые мы потом обновляем позиционным update, фетчить необязательно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 10:28 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Марк, спасибо, пригодится! А удалять записи таким способом можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 12:51 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
dronNNМарк, спасибо, пригодится! А удалять записи таким способом можно?Можно. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 13:27 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Vladimir Kiselev, Добрый день Владимир. А дальше-то что делать? C уважением,Александр В.Мидонов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 18:08 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Alex W.Midonow, Вам Марк уже ответил на Ваш вопрос: из db2cw вызываете: db2 -td@ -vf crt_proc.ddl -z crt_proc.log ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 10:06 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Добрый день Vladimir Kiselev! Если есть время,объясните пож.поподробнее. Вот текстовым редактором(AkelPad) создал файл D:\ABM\Docs\BAT_SQL\crt_proc.ddl , туда скопировал через буфер обмена предложенную Марком процедуру. В БАТ_файле (в той же папке) прописал строку db2 -td@ -vf crt_proc.ddl -z crt_proc.log Запустил его - выдалось сообщение: произошла ошибка доступа к файлу crt_proc.log Запустил db2 -td@ -vf crt_proc.ddl - выдалось сообщение: среда командной строки не инициализирована Пож.поподробнее,как бы Вы поступили? C уважением,Александр В.Мидонов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 17:36 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Alex W.Midonow, > db2cw > D: > cd \ABM\Docs\BAT_SQL > db2 -td@ -vf crt_proc.ddl ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 10:04 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Добрый день Vladimir Kiselev. Спасибо!Это то,что мне нужно! C уважением,Александр В.Мидонов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 12:30 |
|
||
|
SQL0964C Журнал транзакций для базы данных заполнен. SQLSTATE=57011
|
|||
|---|---|---|---|
|
#18+
Добрый день! Вопрос закрыт.Все получилось.Остается только сожалеть,что не в мою голову пришли эти идеи. Всем спасибо!Особенно Mark Barinstein и Vladimir Kiselev!Спасибо! C уважением,Александр В.Мидонов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2009, 15:37 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=35816910&tid=1603407]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 352ms |

| 0 / 0 |
