|
Попытка забрать из процедуры таблицу или как правильно забрать 2 переменные из нее
|
|||
---|---|---|---|
#18+
Добрый день! Есть процедура с TRY ... CATCH внутри. При срабатывании CATCH заполняются 2 переменные (одна с кодом ошибки, другая с текстом), далее эти переменные возвращаются в виде таблицы. Но для того чтобы использовать данные, которые вернула процедура необходимо их записать во временную таблицу и при записи происходит ошибка Код: sql 1. 2.
Код процедуры: Код: 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. 28.
Вызов процедуры с последующей обработкой таблицы, которая была возвращена: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Если же не провоцировать ошибку, то код срабатывает без проблем, т.е. возвращается таблица с двумя полями, где в первом поле '1' и null во втором. Insert проходит без проблем. Помогите разобраться что делаю не так? Функцию сделать не получится, т.к. процедура в примере всего лишь показывает суть проблемы, на самом деле там большая процедура с инсертами... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2021, 09:59 |
|
Попытка забрать из процедуры таблицу или как правильно забрать 2 переменные из нее
|
|||
---|---|---|---|
#18+
Может сделать так? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2021, 10:25 |
|
Попытка забрать из процедуры таблицу или как правильно забрать 2 переменные из нее
|
|||
---|---|---|---|
#18+
ol_chig Добрый день! Есть процедура с TRY ... CATCH внутри. При срабатывании CATCH заполняются 2 переменные (одна с кодом ошибки, другая с текстом), далее эти переменные возвращаются в виде таблицы. Но для того чтобы использовать данные, которые вернула процедура необходимо их записать во временную таблицу и при записи происходит ошибка Код: sql 1. 2.
Код процедуры: Код: 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. 28.
Вызов процедуры с последующей обработкой таблицы, которая была возвращена: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Если же не провоцировать ошибку, то код срабатывает без проблем, т.е. возвращается таблица с двумя полями, где в первом поле '1' и null во втором. Insert проходит без проблем. Помогите разобраться что делаю не так? Функцию сделать не получится, т.к. процедура в примере всего лишь показывает суть проблемы, на самом деле там большая процедура с инсертами... просцице за назойливость, а по чему вы спецальную провоцырующюю ошыбку обрабатываете таким образом begin catch set @result_code = -1 set @result_message = ERROR_MESSAGE() end catch ведь в место -1 можно вернуть что то осязаемое? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2021, 11:05 |
|
|
start [/forum/topic.php?fid=46&msg=40053444&tid=1684959]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 158ms |
0 / 0 |