|
Как вызвать процедуру с out параметром
|
|||
---|---|---|---|
#18+
Подскажите что нужно поменять чтобы вызвать процедура с out параметром wf_load_id_new OUT не получается сделать- сделал INOUT Код: 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. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2021, 19:45 |
|
Как вызвать процедуру с out параметром
|
|||
---|---|---|---|
#18+
вызвать или создать? если создать - доку читали? докаРежим аргумента: IN, INOUT или VARIADIC. По умолчанию подразумевается IN. (Режим OUT для процедур в настоящее время не поддерживается. Используйте вместо него INOUT.) тыц ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2021, 09:48 |
|
Как вызвать процедуру с out параметром
|
|||
---|---|---|---|
#18+
Misha111, Читал Код: 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. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.
Ошибка ЗАМЕЧАНИЕ: Rollback ЗАМЕЧАНИЕ: Illegal operation: фиксировать транзакцию при наличии активных подтранзакций нельзя ЗАМЕЧАНИЕ: <NULL> DO ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2021, 10:20 |
|
Как вызвать процедуру с out параметром
|
|||
---|---|---|---|
#18+
x17.mstu, Вам же явным образом написали: нельзя делать commit/rollback внутри exception handler. Что именно непонятно? -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2021, 10:38 |
|
Как вызвать процедуру с out параметром
|
|||
---|---|---|---|
#18+
Misha111 докаРежим аргумента: IN, INOUT или VARIADIC. По умолчанию подразумевается IN. (Режим OUT для процедур в настоящее время не поддерживается. Используйте вместо него INOUT.) тыц Кстати, в 14 версии появятся и OUT параметры. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2021, 17:17 |
|
Как вызвать процедуру с out параметром
|
|||
---|---|---|---|
#18+
x17.mstu, Предположу, что уровень изоляции транзакций у вас по умолчанию - READ COMMITTED. Если процедура может вызываться параллельно из разных сеансов, то вот такой код чреват потенциальными ошибками: Код: sql 1. 2. 3. 4. 5.
Принимать решение о дальнейших действиях на основании значения переменной var нельзя, потому что после завершения SELECT состояние БД уже могло измениться. В вашем случае запросто могут возникнуть ситуации, когда две параллельные транзакции, вызывающие процедуру, попытаются вставить запись в tmd.etl_wf_load. Первая успеет это сделать, вторая упадет с ошибкой уникальности (если ограничение уникальности на таблице имеется, конечно). Сначала бы с этим разобраться, а потом уже commit в процедуру встраивать. Если без секции EXCEPTION никак не обойтись, то можно что-то такое: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
ROLLBACK писать не надо, если попали в EXCEPTION, то все изменения сделанные в блоке будут отменены автоматически. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2021, 17:52 |
|
|
start [/forum/topic.php?fid=53&msg=40086327&tid=1993922]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 252ms |
total: | 355ms |
0 / 0 |