Во-первых, вы не можете GROUP BY
a CLOB
. Ты просто не можешь. Вам придется найти какой-то другой способ сделать это. Если ваши CLOBs
довольно короткие, менее 4000 символов, вы можете преобразовать их в VARCHAR2s
и сгруппировать их таким образом. Лично мне не нравится стиль Oracle JOINs
, но они действительны.
Вообще-то, подожди. У вас нет агрегации в этом запросе, поэтому вам не нужно никакого вида GROUP BY
. Вы пытаетесь удалить дубликаты? DISTINCT
это способ сделать это.
select distinct
dbms_lob.substr( gene_info, 4000 ) as gene_info,
pi.id, race, id_card_no, sdg.create_datetime
from person_info pi,
sample_info si on si.self_object_id = pi.id,
sample_dna_gene sdg on sdg.sample_id = si.self_object_id
where si.self_object_id in ( ... )