Как удалить дубликаты из таблиц со столбцами типа CLOB?

У меня есть таблица с одним или несколькими столбцами типа CLOB. Эта таблица содержит повторяющиеся строки. Нормальные механизмы вроде distinct а также group by не работать на CLOBв DB2. Как я могу удалить дубликаты на таких таблицах?

2 ответа

Один из способов решения этой проблемы, особенно если это то, что вам нужно будет делать регулярно, - это сравнение дайджестов или хэшей CLOB вместо самих CLOB.

В DB2 нет встроенной функции хеширования, поэтому для достижения этой цели вам нужно пройти через несколько циклов. Например, вы можете экспортировать объекты CLOB в виде файлов и вычислять их хэши с помощью утилиты ОС.

В качестве альтернативы вы можете создать простую пользовательскую функцию, написанную на Java (которая имеет встроенную поддержку MD5 и различные алгоритмы SHA). Одно из таких решений подробно описано здесь.

Вы можете попытаться использовать dbms_lob.compare функция для сравнения содержимого полей CLOB. Это встроенный модуль. Поддерживаемый размер CLOB составляет до 10 МБ.

Другие вопросы по тегам