Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
04.02.2020, 18:04
|
|||
---|---|---|---|
Хмурый анонимный блок |
|||
#18+
Добрый день. Подскажите пожалуйста как можно прервать выполнение анонимного блока при определенном условии? Например если в нем переменная count1 больше 1000 стала. Внутри блоков куча циклов и всего другого. EXIT вызывает ошибку: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2020, 18:19
|
|||
---|---|---|---|
Хмурый анонимный блок |
|||
#18+
Что-то типа goto надо или типа того ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2020, 18:38
|
|||
---|---|---|---|
|
|||
Хмурый анонимный блок |
|||
#18+
per, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2020, 18:38
|
|||
---|---|---|---|
|
|||
Хмурый анонимный блок |
|||
#18+
Return что-нибудь. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 10:41
|
|||
---|---|---|---|
Хмурый анонимный блок |
|||
#18+
entrypoint, Guzya, большое спасибо за ответы! Это похоже на то что требуется! Однако возникло два вопроса: ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 10:43
|
|||
---|---|---|---|
Хмурый анонимный блок |
|||
#18+
1-й вопрос Код: 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. 26. 27.
[/quot][/SRC] Ну в циклах прописано что exit по условию. Но почему не попадаем в " RAISE NOTICE 'и сюда не попадаем'; " ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 10:46
|
|||
---|---|---|---|
Хмурый анонимный блок |
|||
#18+
Второй вопрос: Guzya Return что-нибудь. Куда его в анонимном блоке вставить? Куда не вставлю - везде ошибку выдает :-((( Код: 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.
ОШИБКА: конец функции достигнут без RETURN SQL-состояние: 2F005 Контекст: функция PL/pgSQL inline_code_block ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 11:19
|
|||
---|---|---|---|
|
|||
Хмурый анонимный блок |
|||
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Ну в циклах прописано что exit по условию. Но почему не попадаем в " RAISE NOTICE 'и сюда не попадаем'; " ?[/quot] ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 11:20
|
|||
---|---|---|---|
|
|||
Хмурый анонимный блок |
|||
#18+
per Второй вопрос: Guzya Return что-нибудь. Куда его в анонимном блоке вставить? Куда не вставлю - везде ошибку выдает :-((( Код: 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.
ОШИБКА: конец функции достигнут без RETURN SQL-состояние: 2F005 Контекст: функция PL/pgSQL inline_code_block Можно больше кода для примера ? Какой код выдает такую ошибку ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 11:30
|
|||
---|---|---|---|
Хмурый анонимный блок |
|||
#18+
Так, если return ставлю перед вторым циклом(добавля IF по условию) - то ошибки не возникает: Код: 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.
Это получается RETURN с условием надо перед каждым циклом вставлять? о_О ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 11:52
|
|||
---|---|---|---|
|
|||
Хмурый анонимный блок |
|||
#18+
per, У вас где-то ошибка в логике, где-то в коде есть блок из которого не досягаем RETURN Код: plsql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 12:01
|
|||
---|---|---|---|
Хмурый анонимный блок |
|||
#18+
entrypoint, метка не там Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 12:09
|
|||
---|---|---|---|
|
|||
Хмурый анонимный блок |
|||
#18+
per 1-й вопрос Код: 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. 26. 27.
Ну в циклах прописано что exit по условию. Но почему не попадаем в " RAISE NOTICE 'и сюда не попадаем'; " ?[/quot] Может там пропущен вопрос, так лучше? RAISE NOTICE 'и сюда не попадаем И ПОЧЕМУ?'; " ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 12:11
|
|||
---|---|---|---|
|
|||
Хмурый анонимный блок |
|||
#18+
entrypoint per, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Но ТС написал "Внутри блоков куча циклов и всего другого. ", а здесь нет кучи циклов, кроме того, нету "всего другого" ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 12:12
|
|||
---|---|---|---|
Хмурый анонимный блок |
|||
#18+
entrypoint per, У вас где-то ошибка в логике, где-то в коде есть блок из которого не досягаем RETURN Код: plsql 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.
В том-то и дело что у меня не функция, а анонимный блок. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 12:13
|
|||
---|---|---|---|
Хмурый анонимный блок |
|||
#18+
entrypoint per Второй вопрос: пропущено... Куда его в анонимном блоке вставить? Куда не вставлю - везде ошибку выдает :-((( Код: 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.
ОШИБКА: конец функции достигнут без RETURN SQL-состояние: 2F005 Контекст: функция PL/pgSQL inline_code_block Можно больше кода для примера ? Какой код выдает такую ошибку ? Тот, что в этом сообщении и приведен. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 12:16
|
|||
---|---|---|---|
|
|||
Хмурый анонимный блок |
|||
#18+
per В том-то и дело что у меня не функция, а анонимный блок. вот анонимный блок Код: plsql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 12:17
|
|||
---|---|---|---|
|
|||
Хмурый анонимный блок |
|||
#18+
per, обернуть begin/end Код: plsql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 12:19
|
|||
---|---|---|---|
Хмурый анонимный блок |
|||
#18+
qwwq entrypoint, метка не там Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
А куда тогда надо ставить RETURN? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
ЗАМЕЧАНИЕ: yes ЗАМЕЧАНИЕ: yes2 ОШИБКА: конец функции достигнут без RETURN CONTEXT: функция PL/pgSQL inline_code_block ********** Ошибка ********** ОШИБКА: конец функции достигнут без RETURN SQL-состояние: 2F005 Контекст: функция PL/pgSQL inline_code_block Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
ОШИБКА: ошибка синтаксиса (примерное положение: "RETURN") LINE 15: RETURN; --<--------ТУТА ^ ********** Ошибка ********** ОШИБКА: ошибка синтаксиса (примерное положение: "RETURN") SQL-состояние: 42601 Символ: 217 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 12:22
|
|||
---|---|---|---|
Хмурый анонимный блок |
|||
#18+
Victor Nevsky per, обернуть begin/end Код: plsql 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.
Ваш вариант отработал без ошибок. Но как? Получается RETURN вообще не надо ставить? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 12:30
|
|||
---|---|---|---|
|
|||
Хмурый анонимный блок |
|||
#18+
per, retun - прекращение работы анонимного блока, а вам нужен выход из именованого блока - exit у вас весь именованный блок = анонимный, то есть получается exit в никуда. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 12:33
|
|||
---|---|---|---|
Хмурый анонимный блок |
|||
#18+
Victor Nevsky per, retun - прекращение работы анонимного блока, а вам нужен выход из именованого блока - exit у вас весь именованный блок = анонимный, то есть получается exit в никуда. Смылс такой, что мне надо прервать работы всего анонимного блока при определенном условии. (это условие срабатывает в 10% случаев) Как сделать в таком случае? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 12:35
|
|||
---|---|---|---|
Хмурый анонимный блок |
|||
#18+
Victor Nevsky, Вот такая схема примерно: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
И в любой момент может сработать условие, как только оно срабатывает - закончить выполнение всего блока. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2020, 12:43
|
|||
---|---|---|---|
|
|||
Хмурый анонимный блок |
|||
#18+
per, с любого места программы IF (expression = true) THEN raise notice 'return'; RETURN; END IF; ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=53&mobile=1&tid=1994837]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 146ms |
0 / 0 |