|
|
|
Pipelined call pipelined
|
|||
|---|---|---|---|
|
#18+
Доброго дня господа ! Как из function Pipelined осуществить вызов (по сути передать управление) другой функции pipelined Код: 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. Зачем это нужно ? - концентрация процессы обработки и вывода на одной процедуре - для пользователя "НЕЗАМЕТНАЯ" передача разного числа параметров (default не подходит - разное кол-во и типы параметров) Заранее благодарен ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 00:36 |
|
||
|
Pipelined call pipelined
|
|||
|---|---|---|---|
|
#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. 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. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 01:37 |
|
||
|
Pipelined call pipelined
|
|||
|---|---|---|---|
|
#18+
SYSY. Спасибо , не совсем подходит (default не подходит - разное кол-во и типы параметров) В продуктиве вызовы следующие Вариант 1 select * from table(tA1(0).Show('S1','S2','S3','S4',...................P18,P19,P20)); Вариант 2 select * from table(tA1(0).Show(To_Date('01-01-2017','DD-MM-YYYY'),3,'S1')); Может еще есть возможности ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 08:09 |
|
||
|
Pipelined call pipelined
|
|||
|---|---|---|---|
|
#18+
HOME_XМожет еще есть возможности ?перенаправить трубу из одной функции во вторую функцию без выфетчивания в первой функции курсора наподобие SELECT * FROM TABLE(MY_FUNC_1()) у Вас не выйдет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 11:21 |
|
||
|
Pipelined call pipelined
|
|||
|---|---|---|---|
|
#18+
Pipelined "напрямую" сопрягаются на уровне запроса: - union all (изолированные друг от друга pipelined) - курсор как параметр pipelined Это проистекает из того незамысловатого факта, что механизм обмена pipelined - суть попытка встроить процедурное расширение непосредственно в механизмы SQL-машины. В обсуждаемом случае, возможно, следует говорить не о pipelined, а о табличных функциях, которые вызываются из pipelined-обертки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 11:36 |
|
||
|
Pipelined call pipelined
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousВ обсуждаемом случае, возможно, следует говорить не о pipelined, а о табличных функцияхопасаюсь, в этом случае возможно ограничение по размеру. не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 11:45 |
|
||
|
Pipelined call pipelined
|
|||
|---|---|---|---|
|
#18+
А нужен именно pipelined? Просто если авторВ продуктиве вызовы следующие Вариант 1 select * from table(tA1(0).Show('S1','S2','S3','S4',...................P18,P19,P20)); Вариант 2 select * from table(tA1(0).Show(To_Date('01-01-2017','DD-MM-YYYY'),3,'S1')); и выходной тип в этой select * идентичный, то внутренности реализации можно через REFCURSOR передавать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 12:00 |
|
||
|
Pipelined call pipelined
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous- курсор как параметр pipelined Так и реализовано, была хотелка упросить и не вызывать ненужного курсора На текущий момент реализация следующая Конструктор 1 - обрабатывает множество записей -> курсор-параметр -> общий pipelined - (норма !!) Конструктор 2 - обрабатывает ОДНУ запись -> курсор-параметр -> общий pipelined - (искуств.й курсор !!) Одна запись это 24 параметра конструктора преобразованные в курсор = select S1,S2,S3........P24 from DUAL Не хотел создавать "искуствен." курсор, предполагал концентрацию основного расчета в одной функции и вызов ее напрямую из select-а или из другого pipelined-а.. Ну если невозможно - то так тоже работает неплохо... Спасибо за уделенное время ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 12:37 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=155&tid=1885642]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 333ms |

| 0 / 0 |
