|
|
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
Oracle 8i Есть такой запрос SELECT ..., CAST(MULTISET(SELECT f1,f2 FROM ...) AS TType) cm FROM ... Можно ли его запхнуть во вьюху и нормально работать? Как вообще к полям f1,f2 обращаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2005, 12:13 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
CAST(MULTISET(...)) используется для преобразования данных из селекта к вложенному массиву(таблице) так что мне не совсем ясно почему вы их используете в данном случае. Приведите запрос полностью, может тогда яснее будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2005, 13:20 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
Below is an example: Код: plaintext 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. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2005, 18:51 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
Спасибо за отклики. Раньше не смог ответить грипп свалил. Теперь к делу: Вот эта часть не работает VALUE(P).ENAME Ругается ORA-03001 unimplemented feature ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 12:05 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
Вот Тест: SQL> CREATE OR REPLACE TYPE T_R_Podr_Day AS OBJECT (Podr_Id NUMBER, Date_Start DATE, Date_Finish DATE) 2 / Type created. SQL> CREATE OR REPLACE TYPE T_T_Podr_Day AS TABLE OF T_R_Podr_Day 2 / Type created. SQL> CREATE OR REPLACE VIEW test_podr AS 2 SELECT CAST(MULTISET(SELECT podr_id, date_start, date_finish FROM podr_day) AS T_T_Podr_Day) ppdd FROM dual 3 / View created. SQL> SELECT VALUE(p) 2 FROM TABLE(SELECT ppdd FROM test_podr) p 3 / VALUE(P)(PODR_ID, DATE_START, DATE_FINISH) -------------------------------------------------- T_R_PODR_DAY(1101, '01.01.95', '31.10.02') T_R_PODR_DAY(1103, '01.01.95', '01.01.00') T_R_PODR_DAY(1104, '01.01.95', '01.01.00') T_R_PODR_DAY(1115, '01.01.90', '01.01.00') T_R_PODR_DAY(1099, '01.01.95', '01.01.00') SQL> SELECT VALUE(p).Podr_Id 2 FROM TABLE(SELECT ppdd FROM test_podr) p 3 / SELECT VALUE(p).Podr_Id * ERROR at line 1: ORA-03001: unimplemented feature ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 12:11 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
Для Belka Весь запрос приводить не буду, очень большой. Попробую объяснить: Во FROM запхнуть нет возможности, т.к. запрос там иерархический для каждой строки и может возвращать больше одной строки, в WHERE - неприемлемо долго работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 12:19 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
не забуть /*+ NO_MERGE(test_podr) */ ): ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 12:30 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
DimaRне забуть /*+ NO_MERGE(test_podr) */ ): Не помогло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 12:44 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
А так чем не походит? Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 13:33 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
На самом деле часть запроса примерно такая CAST(MULTISET(SELECT ... FROM ... CONNECT BY ... START WITH ...)) и нужно это дело для каждой строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 11:05 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
Andrey.LНа самом деле часть запроса примерно такая CAST(MULTISET(SELECT ... FROM ... CONNECT BY ... START WITH ...)) и нужно это дело для каждой строки.так он (table/the) для каждой строки и выполнится, что-то я запутался в проблеме Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 12:06 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
Большое спасибо, помогло. Не думал, что конструкция Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 12:17 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
Всем привет, решил разобраться с CAST(MULTISET(...)), и зашол в тупик, если незатруднит, подскажите выход Подскажите в использование cast(multiset(SELECT............ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 12:36 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
Stax., А это нормально, что в этом примере иерархический запрос цепляет к крайнему SMITH-у (не имеющему подчиненых) всех, начиная с JONES-а? Испытал на версии 12.1 - до сих пор это происходит (строки с 11 по 16). Это баг или фича? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2017, 16:06 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
В версии с рекурсивным WITH все соединяется корректно Код: 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. но эту конструкцию не удается в лоб обернуть в MULTISET Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. d.deptno внутрь не передается. А есть такая возможность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2017, 16:19 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
igrsql, імхо, вхере после коннест Код: 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. 86. 87. 88. 89. 90. ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2017, 16:58 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
igrsqlЭто баг или фича? это отсутствие START WITH и ORDER SIBLINGS BY. Вы ошибаетесь, когда думаете, что задаёте стартовый набор при помощи WHERE e.deptno = 20. RTFM Hierarchical queries . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2017, 16:58 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
igrsqlА это нормально, что в этом примере иерархический запрос цепляет к крайнему SMITH-у (не имеющему подчиненых) всех, начиная с JONES-а?Тебе это только показалось из-за крайне неудачного select-list-а. igrsqlЭто баг или фича?Такое всегда происходит, когда все у корен яются руководить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2017, 17:09 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
igrsql, не все скопировал Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2017, 17:24 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
stax.., И в самом деле, все по перечитанной документации: -The CONNECT BY condition is evaluated. -Any remaining WHERE clause predicates are evaluated. сначала строится полная иерархия (кусок её ниже) Код: plsql 1. 2. 3. 4. 5. 6. 7. затем отфильтровывается строка KING-а и оп-па - SMITH "склеился" с деревом KING-а. Спасибо. Остался второй вопрос: "multiset" и "with subquery factoring", дружат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2017, 17:56 |
|
||
|
Как работать с CAST(MULTISET(...))
|
|||
|---|---|---|---|
|
#18+
igrsqlОстался второй вопрос: "multiset" и "with subquery factoring", дружат? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Проблема в том, что Вы пытаетесь скоррелировать этот самый subquery factoring с полем внешнего запроса. И даже если Вы перепишете запрос с использованием LATERAL, похоже, что подобная корреляция в subquery factoring не поддерживается: авторYou can specify this left correlation anywhere within subquery (such as the SELECT, FROM, and WHERE clauses) and at any nesting level. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2017, 02:49 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=182&tid=1886704]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
25ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 219ms |
| total: | 370ms |

| 0 / 0 |
