Oracle 12 - большой двоичный объект в списке столбцов с группировкой разбивает listagg?

У нас есть набор таблиц, из которых нам нужно создать представление... в представлении есть 30 столбцов. Один (последний) столбец использует listagg для агрегирования нескольких значений из одной из таблиц... другой столбец представляет собой BLOB из другой таблицы.

Все шло хорошо, когда я создавал представление по одному столбцу за раз. добавление listagg - затем началось добавление всех столбцов группировки.. когда я добавил столбец BLOB, вернулась ошибка несовместимый тип данных.. ожидал - получил BLOB.

Итак, просто общий вопрос... нарушает ли все это наличие столбца BLOB в списке столбцов group-by для столбца listagg? Есть ли способ обойти проблему, используя только SQL?

Любые идеи и предложения приветствуются. Поскольку задействовано несколько таблиц и много столбцов, я надеюсь, что объяснил ситуацию достаточно хорошо, чтобы получить предложения, не пытаясь построить все дело для обзора.


person user761758    schedule 06.11.2015    source источник
comment
Можете ли вы отредактировать свой вопрос и показать свой запрос? Или хотя бы упрощенную версию с той же ошибкой?   -  person Gordon Linoff    schedule 06.11.2015


Ответы (1)


Вы не можете группировать по столбцам LOB. Если вы получаете список из одной таблицы, а затем хотите выбрать информацию из второй таблицы, почему бы не сначала выполнить группировку, прежде чем выполнять соединение?

Например. что-то типа:

select t1.col1, 
       t1.col2, 
       t1.grouped_col3,
       t2.blob_col
from   (select   col1,
                 col2,
                 listagg(col3, ',') within group (order by col4) grouped_col3
        from     first_table
        group by col1, col2) t1
       inner join t2 on (t1.col1 = t2.col1 and t1.col2 = t2.col2);
person Boneist    schedule 06.11.2015
comment
а если столбец blob находится в таблице 1? разрешено ли здесь дважды присоединяться к одной и той же таблице›? - person user761758; 06.11.2015
comment
Вы можете присоединиться к той же таблице во внутреннем запросе? - person user761758; 06.11.2015