Решил зафиксировать решение, так как по-прежнему на собесе это могут спросить. IRL, за всё время работы с Oracle, дубли приходилось удалять только в одном случае - когда я их до этого по ошибке сделал)).
Периодически при ELT приходится изменять алгоритмы сбора таблиц в базе. Хорошо, если эта таблица сама по себе, и больше нигде не используется, или эти изменения не могут никак повлиять на существующие пайплайны или другие объекты. Но не всегда это так, увы, и приходится смотреть зависимости.
Зачем это может понадобиться? Например, в приложении пользователь вводит список значений в одну строку, разделитель - запятая. Для известной таблички scott.emp ввод может выглядеть так: SMITH,ALLEN,WARD.
Воспользуемся известной схемой SCOTT, для примера преобразуем таблицу emp. А именно, создадим новую табличку, в которой добавим несколько статей доходов работникам по некой логике. Это тривиально, по коду всё видно:
Используем известную схему SCOTT, таблицу EMP.
Переставил Oracle 18 XE на домашнем ноуте и пошёл гуглить, как накатить схему scott. Больше не придётся, 2 команды в sql plus.
Все примеры ниже базируются на известной схеме SCOTT.