дубликаты CLOB

Зомбик
Дата: 24.03.2011 12:55:10
извините, если баян, но я не нашел

подскажите, как удалить дубликаты если надо смотреть дублирование по полю типа CLOB

например, в таблице 2 поля

id number
value CLOB

попробовал стандартный вариант not in ... max(rowid)
выдает ошибку ORA-000932
_Nikotin
Дата: 24.03.2011 13:03:38
Сергей Арсеньев
Дата: 24.03.2011 13:41:07
Зомбик,

Не претендую, что моя трава лучше Никотина, но:

 select distinct (case when t1.id<t2.id then t2.id else t1.id end) id from t t1,t t2
  where t1.id<>t2.id
   and dbms_lob.compare(t1.value,t2.value)=0;
orawish
Дата: 24.03.2011 13:43:44
Сергей Арсеньев
Зомбик,

Не претендую, что моя трава лучше Никотина, но:

 select distinct (case when t1.id<t2.id then t2.id else t1.id end) id from t t1,t t2
  where t1.id<>t2.id
   and dbms_lob.compare(t1.value,t2.value)=0;

отрезать бы от <> любую половинку :)
Сергей Арсеньев
Дата: 24.03.2011 13:52:01
orawish
отрезать бы от <> любую половинку :)

Действительно:
 select distinct t1.id from t t1,t t2
  where t1.id>t2.id
   and ...
Сергей Арсеньев
Дата: 24.03.2011 13:53:00
естественно если id созданы как not null
Сергей Арсеньев
Дата: 24.03.2011 13:55:32
И уж если совсем с id не заморачиваться
 select t1.rowid from t t1,t t2
  where t1.rowid>t2.rowid
      and ...