Похоже, вы не делаете ничего плохого. С помощью фиктивной табличной функции для возврата данных, которые вы показали, wm_concat
у меня сработал:
select wm_concat(object_id) from
(select object_id from cr_object_group_entries_vw where object_group_id in
(select item from table(cr_fn_split_string('28,56',','))))
/
WM_CONCAT(OBJECT_ID)
--------------------------------------------------------------------------------
36,1,11,121,13,14,17,18,2,24,3,32,33,34,35,36,37,38,39,40,42,43,44,6,7,8,81
Вы отметили вопрос как [11g]; как сказал @beherenow, если вы можете, вы должны использовать поддерживаемый lisgagg
вместо неподдерживаемого wm_concat
, хотя он доступен только с 11gR2, я думаю:
select listagg(object_id, ',') within group (order by object_id)
from cr_object_group_entries_vw
where object_group_id in
(select item from table(cr_fn_split_string('28,56',',')))
/
LISTAGG(OBJECT_ID,',')WITHINGROUP(ORDERBYOBJECT_ID)
---------------------------------------------------------------------------
1,11,121,13,14,17,18,2,24,3,32,33,34,35,36,36,37,38,39,40,42,43,44,6,7,8,81
SQL Fiddle (только для listagg
, поскольку он не поддерживает wm_concat
- возможно, ваш экземпляр тоже не работает, но тогда он должен ошибаться?)
person
Alex Poole
schedule
21.05.2013