У меня есть таблица в Oracle, одним из столбцов которой (CONTENTSTRING
) является CLOB
. Однако некоторые строки в этой таблице имеют идентичные данные в этом столбце. То, что я хотел бы сделать, это удалить все строки, кроме одной, которая имеет эти идентичные данные. Как мне это сделать?
Погуглив, я вижу массу примеров для сравнения двух столбцов. Я также вижу примеры сравнения двух разных таблиц. То, что я не вижу, это пример использования одной таблицы и только сравнения строк! Я думаю, что мне может понадобиться использовать эту функцию: dbms_lob.compare
. Однако я все еще не уверен, как настроить эту функцию.
С точки зрения программиста, я думаю, может быть, мне следует сделать что-то вроде:
SELECT CONTENTSTRING FROM TABLE_ALPHA A
и затем каким-то образом сделать другой выбор из той же таблицы, что и TABLE_ALPHA B
, а затем используйте dmbs_lob.compare
для сравнения двух столбцов. Если номера строк различаются И содержимое столбцов одинаково, то строка из TABLE_ALPHA B
может быть удалена.
Я думаю, что это правильный подход, но как именно я написал бы это в Oracle, используя SQL? Я был бы признателен за любую помощь или ресурсы по этому вопросу. Спасибо!