0
Если мне нужно запустить код PL/SQL на основе версии выпуска продукта, лучше ли добавить условную логику if/else или обработать ее с помощью исключительной обработки?if/else условная логика против обработки исключений
IF release_version > 5 THEN
execute some SQL query only for release > 5 because a certain column was only introduced in ver 6;
ELSE
execute another SQL query;
END IF;
Если у вас будет статический оператор SQL, который ссылается на столбец, который может не существовать, у вас возникнет проблема. Весь блок не будет компилироваться, если столбец не существует, поэтому ELSE не сможет работать. Не имеет значения, если у вас есть IF/ELSE или блок исключения, весь блок не сможет скомпилироваться. Если это действительно так, вы можете посмотреть условную компиляцию (в зависимости от вашей версии Oracle), но это может добавить дополнительную сложность вашему процессу. –
Я использую EXECUTE IMMEDIATELY, и он не жаловался на несуществующий столбец. Этот подход в порядке? – Pha3drus
Почему ваша кодовая база PL/SQL не может синхронизироваться со структурами таблиц? Если таблица отличается от версии 5 и 6, почему ваш код PL/SQL не может быть? – user272735