|
запрос возвращающий таблицу с произвольным количеством столбцов
|
|||
---|---|---|---|
#18+
andrey_anonymous классических ref cursor на динамическом sql ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2021, 14:33 |
|
запрос возвращающий таблицу с произвольным количеством столбцов
|
|||
---|---|---|---|
#18+
SY PTT это чисто SQL решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2021, 14:34 |
|
запрос возвращающий таблицу с произвольным количеством столбцов
|
|||
---|---|---|---|
#18+
Sayan Malakshinov Implicit Statement Results (DBMS_SQL.RETURN_RESULT) Уж больно оно новомодное. Есть подозрение, что не каждый клиент справится - там апишка на клиенте вроде как своя (get_next_resultset). ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2021, 15:52 |
|
запрос возвращающий таблицу с произвольным количеством столбцов
|
|||
---|---|---|---|
#18+
Кобанчег SY PTT это чисто SQL решение. SQL решение в смысле никаких сторонних tools типа Java, C++, .NET... и самое главное мы получаем результат через SELECT. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2021, 20:24 |
|
запрос возвращающий таблицу с произвольным количеством столбцов
|
|||
---|---|---|---|
#18+
Забыл про SQL макро, правда придется форсировать hard parse: Код: 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.
Теперь: Код: 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.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2021, 22:30 |
|
запрос возвращающий таблицу с произвольным количеством столбцов
|
|||
---|---|---|---|
#18+
SY Забыл про SQL макро, правда придется форсировать hard parse: SY. test_tbl_seq.nextval форсирует hard parse? ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2021, 08:41 |
|
запрос возвращающий таблицу с произвольным количеством столбцов
|
|||
---|---|---|---|
#18+
Stax test_tbl_seq.nextval форсирует hard parse? stax Не сам по себе а: Код: plsql 1. 2. 3.
Посему каждый раз имеем новый SQL текст которого нет в shared pool так-что hard parse. Из минусов - пухнущий shared pool. Можно избежать: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Теперь: Код: 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. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2021, 12:52 |
|
запрос возвращающий таблицу с произвольным количеством столбцов
|
|||
---|---|---|---|
#18+
а как объявить функцию в пакете которая возвращает таблицу с заранее неизвестным количеством столбцов? количество столбцов будет известно только внутри функции исходя из содержимого таблицы ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2021, 13:03 |
|
запрос возвращающий таблицу с произвольным количеством столбцов
|
|||
---|---|---|---|
#18+
SY Не сам по себе а: понял, я проморгал амперсанд .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2021, 13:09 |
|
запрос возвращающий таблицу с произвольным количеством столбцов
|
|||
---|---|---|---|
#18+
kmskmskms а как объявить функцию в пакете которая возвращает таблицу с заранее неизвестным количеством столбцов? количество столбцов будет известно только внутри функции исходя из содержимого таблицы Число столбцов определяется только при hard parse посему что бы не использовалось (ODCI interface, SQL macro, polymorphic table function...) мы будем вынуждены форсировать hard parse для каждого нового числа столбцов что я и показал. Код: 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.
Первый SELECT в shared pool Oracle не находит и выполняет hard parse вызывая SQL macro который конструирует SELECT с четырьмя полями. Затем мы вставляем запись с COL=7 т.е. теперь надо вывести 7 полей. Однако при последующем выполнении идентичного SELECTа (абсолютно идентичный текст) Oracle находит SQL текст в shared pool и использует его. Посему SQL macro (ODCI interface, polymorphic table - любой метод переменного числа полей) не вызывается и последующие выполнения идентичного SELECTа выдадут 4 поля независимо от MAX(COL). А как только мы изменили текст SELECTа и Oracle не находит новый текст в shared pool то выполняется hard parse, вызывается SQL macro который конструирует SELECT с семью полями. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2021, 14:19 |
|
запрос возвращающий таблицу с произвольным количеством столбцов
|
|||
---|---|---|---|
#18+
SY вызывается SQL macro который конструирует SELECT с семью полями. SY. имхо то что с макро не парсится, ето скорее косяк, чем достоинство добавили б хинт (прагму) парсить в любом случае (независимо от наличия в шаред пуле) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2021, 14:28 |
|
|
start [/forum/topic.php?fid=52&msg=40105563&tid=1879808]: |
0ms |
get settings: |
8ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
42ms |
get topic data: |
2ms |
get forum data: |
0ms |
get page messages: |
196ms |
get tp. blocked users: |
0ms |
others: | 290ms |
total: | 545ms |
0 / 0 |