|
|
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Добрый день всем! Есть вопрос: Допустим у меня есть такой набор данных: Код: plsql 1. 2. 3. 4. 5. 6. 7. короче говоря field1 - это уникальный ID записи, а full_path - полный путь этой записи в дереве. Из этого набора необходимо получить такое: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. то есть, если допустить, что первый набор был получен при помощи listagg (хотя это не так и использовалась sys_connect_by_path) то в данном случае нужно обратно всё "разгруппировать". Есть ли какое-то решение ? Да, исходный набор данных в таблице выглядит так: Код: plsql 1. 2. 3. 4. 5. 6. 7. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2013, 18:57 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Станислав БабинЕсть ли какое-то решение ? Да: не создавать самому себе трудности и сразу использовать иерархические запросы для получения нужного результата прямо из исходного набора данных. Без промежуточных извращений с listagg. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2013, 19:02 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovСтанислав БабинЕсть ли какое-то решение ? Да: не создавать самому себе трудности и сразу использовать иерархические запросы для получения нужного результата прямо из исходного набора данных. Без промежуточных извращений с listagg. Можете ли составить текст запроса для приведенного примера? Изначальный набор данных 3, нужно получить набор данных 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2013, 19:06 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Станислав БабинМожете ли составить текст запроса для приведенного примера? Могу, но зачем оно мне? RTFM connect by или with recursive, студент. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2013, 19:25 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Станислав Бабин, connect by + regexp_substr спасут отца русской демократии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2013, 19:37 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Lecterconnect by + regexp_substr connect by + union all ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2013, 19:52 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
-2-Lecterconnect by + regexp_substr connect by + union all Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2013, 19:57 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Тряхнём перечницей, да, про union я перемудрил с равенством паренту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2013, 20:34 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Станислав Бабин, мона по старинке вместо connect by "pivot" фурумный Код: 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. ps несколько напрягает DBMS_RANDOM.VALUE .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2013, 20:41 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
stax..Станислав Бабин, несколько напрягает DBMS_RANDOM.VALUE Посему надежней SYS_GUID(). SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2013, 20:56 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
SYstax..Станислав Бабин, несколько напрягает DBMS_RANDOM.VALUE Посему надежней SYS_GUID(). SY. спасиб я пользую/пользовал табличку "pivot" c 10000 записями .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2013, 21:36 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#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. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2013, 21:48 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
SY, Спасибо за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2013, 10:03 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Станислав Бабин, Аналогичный пример с использованием рекурсивного запроса --':p1 12 45 68' with q1(wx,n) as (select substr(:p1,1,INSTR(:p1,' ',1,1)-1) , 1 as n from dual union all select substr(:p1,INSTR(:p1,' ',1,n)+1, case when INSTR(:p1,' ',1,n+1)>0 then INSTR(:p1,' ',1,n+1)-1-INSTR(:p1,' ',1,n) else length(:p1)-INSTR(:p1,' ',1,n) end ) , n+1 as n from q1 where INSTR(:p1,' ',1,n)>0 ) select wx from q1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2013, 12:28 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Есть ли более изящное решение, с использованием xml, чтобы не было ошибки, в случае, если у нас нет разделителя и строчку в общем-то разбивать не нужно? Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 15:00 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
RyuuЕсть ли более изящное решениенаписать/позаимствовать функцию. Ryuuчтобы не было ошибки, в случае, если у нас нет разделителяпредконкатенация с разделителем или if match внутри xquery ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 15:36 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 15:36 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Elic, хмм, 12 оракл? У меня не работает, 11. Причем код ошибки не пишет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 10:04 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Ryuu12 оракл? У меня не работает, 11 http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM Работает как минимум начиная с 11.2.0.3. P.S. В 11.2.0.2 XML-движок был коренным образом заменён. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 10:13 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Ryuu, все работает на 11g. пробей тчательнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 10:13 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
х3, у меня Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production и выдает это Видимо админы окончательно поломали базу... В любом случае, это я так, для общего развития, так что и бог с ним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 10:34 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 10:42 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
RyuuВидимо админы окончательно поломали базу....для начала как минимум смотреть статус компонент: Код: plsql 1. 2. Дальше думать... Если ставили патч, то компоненты должны соответствовать версии патча и иметь стату VALID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 10:46 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
У меня нет прав даже на просмотр данной таблицы. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 10:55 |
|
||
|
Обратная функция по отношению к listagg
|
|||
|---|---|---|---|
|
#18+
Elic Код: plsql 1. 1. Возвращаемое XMLTABLE поле COLUMN_VALUE имеет тип XMLTYPE, так-что лучше XMLCAST(COLUMN_VALUE AS VARCHAR2(размер)) 2. При условии str не содержит кавычек (одинарных и двойных), амперсандов и.т.д. В общем случае что-то типа: Код: plsql 1. 2. 3. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 14:26 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=38270724&tid=1887343]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
177ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 491ms |

| 0 / 0 |
