|
Возврат из pl/pgsql функции двух и более результатов запросов
|
|||
---|---|---|---|
#18+
Заранее прошу прощения за длинные примеры. Пример 1. Код: 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. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68.
Пример 2. Код: 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.
Вопрос: Почему Пример 1 работает, а Пример 2 нет? Как вернуть из одной функции два результата, двух (или более) запросов к разным таблицам? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 20:48 |
|
Возврат из pl/pgsql функции двух и более результатов запросов
|
|||
---|---|---|---|
#18+
an2k, так вы не можете вернуть 2 разных resultset. Из функции можно вернуть setof только одного вида. Но вот как вы этот setof делаете - полностью ваше дело. Большой толпой return next, несколькими return query, да хоть language sql с union all. Но результат должен быть одного и того же типа. В общем-то, как для union all. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 21:11 |
|
Возврат из pl/pgsql функции двух и более результатов запросов
|
|||
---|---|---|---|
#18+
т.е. выхода/обхода/хитрости никакой нет? как нибудь вызвать две функции одним разом? только внешним скриптом, а изнутри никак? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 05:57 |
|
Возврат из pl/pgsql функции двух и более результатов запросов
|
|||
---|---|---|---|
#18+
an2kт.е. выхода/обхода/хитрости никакой нет? как нибудь вызвать две функции одним разом? только внешним скриптом, а изнутри никак? Вызвать две - легко. Хоть десять. Вы не можете 2 recordset разной структуры вернуть с одного вызова. Альтернатива - возвращать вместо record - JSON у которого всеравно структуры нет и тогда возвращайте чего хотите и потом сами в этой каше разбирайтесь или возвращать набор из нескольких курсоров и потом вычитывайте ваши ответы оттуда. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 10:24 |
|
Возврат из pl/pgsql функции двух и более результатов запросов
|
|||
---|---|---|---|
#18+
an2kт.е. выхода/обхода/хитрости никакой нет? как нибудь вызвать две функции одним разом? только внешним скриптом, а изнутри никак? Из функции можно вернуть несколько курсоров и дальше с ними работать. Код: 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. 29. 30. 31. 32.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 12:48 |
|
Возврат из pl/pgsql функции двух и более результатов запросов
|
|||
---|---|---|---|
#18+
Павел Лузанов, и эти фичи нельзя из еще одной фунции вызвать? только вручную интерактивно по очереди? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2018, 20:51 |
|
Возврат из pl/pgsql функции двух и более результатов запросов
|
|||
---|---|---|---|
#18+
an2k, Почему нет. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2018, 19:25 |
|
Возврат из pl/pgsql функции двух и более результатов запросов
|
|||
---|---|---|---|
#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.
Ну и ссылка на документацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2018, 19:48 |
|
Возврат из pl/pgsql функции двух и более результатов запросов
|
|||
---|---|---|---|
#18+
Павел Лузанов, Спасибо!!! А setof refcursor нельзя? или просто "неудобно"? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 17:13 |
|
Возврат из pl/pgsql функции двух и более результатов запросов
|
|||
---|---|---|---|
#18+
_Drive_А setof refcursor нельзя? или просто "неудобно"? Можно и setof refcursor. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 17:31 |
|
Возврат из pl/pgsql функции двух и более результатов запросов
|
|||
---|---|---|---|
#18+
Павел Лузанов, Я это к тому что не знаю есть ли в jdbc postgree такой Java тип как КУРСОР, ведь в случае out refcursor - получается, что это выходная переменная типа refcursor. И после вызова такой функции ее надо OPEN и FETCH (в терминах Java) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 21:33 |
|
|
start [/forum/topic.php?fid=53&gotonew=1&tid=1995331]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 159ms |
0 / 0 |