|
|
|
LIMIT
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста. Процедура принимает входной параметр iLimit , этот же параметр нужно указать в LIMIT DECLARE cursor1 CURSOR FOR ... FROM ... LIMIT iLimit; Ругается, если писать цифры то все работает хорошо, а с переменной ошибка. Подскажите как можно в данном случае решить проблему, читал за prepared statement, но не знаю как применить относительно курсора в данном случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 15:30:08 |
|
||
|
LIMIT
|
|||
|---|---|---|---|
|
#18+
Хм, похоже, что никак. Я лазейки в синтаксисе не вижу. prepared statement помогли бы, если нужно просто выполнить запрос, а не делать из него курсор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 15:43:31 |
|
||
|
LIMIT
|
|||
|---|---|---|---|
|
#18+
Думаю, придётся делать счётчик и соотв. обвязку FETCH-a. При исчерпании лимита не фетчить, а выдавать соотв. SIGNAL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 15:52:41 |
|
||
|
LIMIT
|
|||
|---|---|---|---|
|
#18+
Хотя еще хорошо бы посмотреть на реальную необходимость курсора. С хорошей вероятностью курсор и его цикл получится заменить на SQL-запрос. А там, глядишь, и надобность в LIMIT-е отпадет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 15:55:34 |
|
||
|
LIMIT
|
|||
|---|---|---|---|
|
#18+
Спасибо что откликнулись. Вот процедура: Код: sql 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. data_part_count - входной параметр процедуры. Суть процедуры перезапись из одной таблицы в другую, количество перезаписанных строк должно быть равное соответственно входному параметру в data_part_count. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 17:15:34 |
|
||
|
LIMIT
|
|||
|---|---|---|---|
|
#18+
Mor1L, Вся процедура заменяется одни запросом INSERT ... SELECT ... А для чего лимит сделан? Нужен ли он реально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 17:24:23 |
|
||
|
LIMIT
|
|||
|---|---|---|---|
|
#18+
miksoft, Нужен, при том что процедура должна быть описана именно так, с использованием курсора. Плюс еще она вызывается в триггере, вообщем база должна быть именно такой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 17:29:55 |
|
||
|
LIMIT
|
|||
|---|---|---|---|
|
#18+
miksoft, Процедура должна перезаписать столько, сколько во входном, первое что пришло в голову LIMIT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 17:31:50 |
|
||
|
LIMIT
|
|||
|---|---|---|---|
|
#18+
Mor1Lпроцедура должна быть описана именно так, с использованием курсораЧто значит "должна"? Это учебное задание? Mor1Lона вызывается в триггереВот в триггере и прописать INSERT ... SELECT. Процедура становится вовсе ненужна. Кстати, LIMIT можно эмулировать на переменных (или бросать обработку курсора на полпути). Но все это сильно неэффективно по сравнению с одиночным запросом. Неэффективно как с точки зрения ресурсов и быстродействия, так и с тояки зрения последующего сопровождения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 17:35:56 |
|
||
|
LIMIT
|
|||
|---|---|---|---|
|
#18+
miksoft, Вы правы, это учебное задание. Я тоже сначала сделал одним запросом в триггере, но база должна быть именно такой, и с процедурой. Увы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 17:44:43 |
|
||
|
LIMIT
|
|||
|---|---|---|---|
|
#18+
Mor1Lэто учебное заданиеА, ну тогда на эффективность можно наплевать. Тогда делайте как задано, а вариантов вам уже накидали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 17:47:07 |
|
||
|
LIMIT
|
|||
|---|---|---|---|
|
#18+
оппысатся можно! а почему таблица названа с суфиксом memory?? просто ограничение на курсор и динамический лимит обходиться следующим способом 1)создаёться подготовленое выражение на создание вьюхи(временой таблицы, таблицы в памяти аля тополя) 2) п1 наполняеться данными с лимитом нужным(если есть необходимость в наполнении - ведь для представления например такой необходимости нету) 3)открываеться курсор на полный проход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2015, 20:40:33 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38994354&tid=1833010]: |
0ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 331ms |

| 0 / 0 |
