Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Здравствуйте подскажите пожалуйста как через Quest Central работая с базой данных DB2 написать и выполнить анонимный SQL PL блок ? тоесть не создавая хранимой процедуры. Дайте пожалуйста примерчик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 14:38 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Serge ChernushenkoЗдравствуйте подскажите пожалуйста как через Quest Central работая с базой данных DB2 написать и выполнить анонимный SQL PL блок ? тоесть не создавая хранимой процедуры. Дайте пожалуйста примерчик. Наверное лучшим аналогом будет то, что называется COMPOUND SQL. Однако имейте в виду что все в этом блоке выполняется в одной транзакции. Т.е. никаких COMMIT ROLLBACK DECLARE CURSOR и пр. Типа - не Oracle это. http://publib.boulder.ibm.com/infocenter/db2luw/v8//topic/com.ibm.db2.udb.doc/admin/r0004240.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 15:13 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Нельзя ли примерчик ? Хотелось бы что либо с объявлением переменной внутри этого блока, но без создания хранимой процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 17:27 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Так ссылку же вроде правильную дали... Там все есть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 17:41 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Запускать на выполнение: db2 -c- -td@ -vf t.sql Результат: E:\DISK-E\work\COMPOUND>db2 -c- -td@ -vf t.sql create table test.cnt (cnt int not null, name varchar(100)) DB20000I The SQL command completed successfully. begin atomic declare var int default 0; set var=(select count(*) from syscat.tables); insert into test.cnt (cnt,name) values (var,'SYSCAT.TABLES'); end DB20000I The SQL command completed successfully. rollback DB20000I The SQL command completed successfully. Я не уверен что это то, что вам надо. Лучше скажите что у вас за задача такая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 17:41 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Задача в следующем. У меня нет прав на создание хранимых процедур в базе, тем не менее мне необходимо удалить записи из таблицы выбирая их по какому-либо критерию, и параллельно удалять все связанные записи в других таблицах. В Oracle я просто написал бы PL/SQL анонимный блок, в нем сделал бы один или несколько курсорных циклов, с операторами delete внутри и выполнил бы этот блок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 17:55 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Здесь у меня в распоряжении программа Quest Central for DB2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 17:56 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Serge ChernushenkoЗадача в следующем. У меня нет прав на создание хранимых процедур в базе, тем не менее мне необходимо удалить записи из таблицы выбирая их по какому-либо критерию, и параллельно удалять все связанные записи в других таблицах. В Oracle я просто написал бы PL/SQL анонимный блок, в нем сделал бы один или несколько курсорных циклов, с операторами delete внутри и выполнил бы этот блок. Понятен ваш подход. Понятна структура базы. Ссылочная целостность отсутствует напрочь.:) Пред тем как что либо делать, убедитесь что у вас лог достаточно большой (а то транзакция не поместится). Или ограничивайте выборку c помощью fetch first N rows only Делайте одним запросом так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 18:25 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Да, и еще, а версия DB2 какая?.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 18:28 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Спасибо большое, буду пробовать делать так. P.S. Ссылочная целостность есть, но каскадности удаления там не указано, поскольку за каскадность у нас отвечает Hibernate. Та что приходится извращаться. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 18:31 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
DB2 версии 8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 18:41 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
ну вот, опять DB2 AS/400 обделённой осталась - там не поддерживается конструкция begin atomic. 2 gardenman - спасибо за пример с SELECT FROM DELETE - в оракле такого нет - давно хотел разобраться с ним. Впрочем, на AS/400 это опять не поддерживается. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 22:29 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
anton, видимо, у вас до сих пор нет db2 cookbook. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 09:20 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. Имеем SQL0532N A parent row cannot be deleted because the relationship "VVM.CHILD1.X1" restricts the deletion. SQLSTATE=23504, как я и подозревал. Думаю, надо писать немного по-другому (сейчас проверю). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 10:55 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Я думал что ссылочной целостности нет. Кстати, кто вам мешает убить FK на время? Ну или в конце концов нужно идти от конца к началу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 10:58 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#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. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 11:21 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
gardenmanЯ думал что ссылочной целостности нет. Кстати, кто вам мешает убить FK на время? Как нету, когда есть? Выше же написано. А FK помешает убить тот же, кто мешает создавать хранимые процедуры и переопределить FK на on delete cascade. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 11:24 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Victor Metelitsa gardenmanЯ думал что ссылочной целостности нет. Кстати, кто вам мешает убить FK на время? Как нету, когда есть? Выше же написано. А FK помешает убить тот же, кто мешает создавать хранимые процедуры и переопределить FK на on delete cascade. Ну да, ты прав. Вобщем-то всё получится если подумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 11:30 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Victor - выложи explain, please. Интересно, как вот оно (оптимайзер) понимает.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 12:01 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Ни одноuj индекса нет - сплошные tablescans ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 12:36 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Таблички маленькие, индексы бы не помогли. Никто не обратил внимание, что умнее было бы написать просто Код: plaintext 1. 2. 3. 4. 5. 6. ;-) ;-) ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 13:20 |
|
||
|
Анонимный блок SQL PL
|
|||
|---|---|---|---|
|
#18+
Тут самая фича в том, чтобы удаление сделать согласованным, чтобы удалять по критерию, но порциями (чтобы избежать переполнения лога). Если делать разными операторами а какой-то не пройдет - либо транзакцию откатывать либо хранить во временных таблицах удаленные строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 13:26 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=33691260&tid=1605384]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 266ms |
| total: | 433ms |

| 0 / 0 |
