Мы стремимся удалить старые данные из хранилища Oracle.
Чтобы дать очень упрощенный обзор, было предложено разработать процесс с использованием хранимых процедур PL SQL, который с заданными параметрами исходной/целевой таблицы и т. д. использует представление Oracle ALL_TAB_COLUMNS для построения целевой таблицы, отражающей исходную таблицу.
Если целевая таблица существует из предыдущего запуска, предлагаемое решение включает сравнение текущей схемы исходной таблицы с целевой (архивной) таблицей и, при обнаружении различий, синхронизацию таблиц. Я уверен, что ограничения в предлагаемой функциональности существуют, но хотя спецификация в этой области выглядит довольно амбициозной, я сомневаюсь, что они собираются переписывать утилиту Red Gate SQL Compare на PL-SQL.
Думаю, у меня есть два вопроса.
1) Действительно ли PL/SQL подходит для такой задачи? Для меня хранимые процедуры используются для быстрого ввода и вывода данных, а сложная логика принадлежит тому, что я бы назвал более полнофункциональным клиентским языком, таким как C# или какой-либо другой язык .NET. Я ожидаю 10 000 строк, одну хранимую процедуру с плохим отступом, и я съеживаюсь от необходимости просматривать ее. Я знаю, что Oracle SP/Pkgs не обязательно должны быть такими, но по какой-то причине наши разработчики, как правило, менее модульны при использовании PL\SQL, чем при написании на .NET. Буду рад вашим рекомендациям и аргументам в пользу вашего выбора.
2) Существуют ли утилиты Oracle (думаю, у нас 10g), которые можно использовать для целей архивирования? У кого-нибудь есть какие-нибудь советы?
Я проголосую за любой неповторяющийся достойный комментарий.
Спасибо.