Правильно ли я понимаю, что CREATE OR REPLACE в основном означает «если объект существует, отбросьте его, а затем создайте в любом случае?»
Если да, то что я делаю не так? Это работает:
CREATE TABLE foo (id NUMBER,
title VARCHAR2(4000) DEFAULT 'Default Title')
И это не так (ORA-00922: параметр отсутствует или недействителен):
CREATE OR REPLACE TABLE foo (id NUMBER,
title VARCHAR2(4000) DEFAULT 'Default Title')
Я делаю что-то глупое? Кажется, мне не удалось найти много документации по этому синтаксису.
CREATE OR REPLACE
также работает для синонимов и триггеровСледующий сценарий должен помочь с Oracle:
источник
Не работает с таблицами, только с функциями и т. Д.
Вот сайт с некоторыми примерами .
источник
Полезная процедура для баз данных Oracle без использования исключений (в некоторых случаях вам нужно заменить user_tables на dba_tables и / или ограничить табличное пространство в запросе):
источник
источник
Если вы выполняете код, сначала проверьте наличие таблицы в базе данных с помощью запроса SELECT table_name FROM user_tables WHERE table_name = 'XYZ'
если запись найдена, то обрежьте таблицу, иначе создайте таблицу
Работайте как "Создать" или "Заменить".
источник
Вы можете использовать CORT ( www.softcraftltd.co.uk/cort ). Этот инструмент позволяет СОЗДАТЬ ИЛИ ЗАМЕНИТЬ таблицу в Oracle. Это выглядит как:
Он сохраняет данные.
источник
Итак, я использовал это, и он работал очень хорошо: - он больше работает как DROP IF EXISTS, но выполняет свою работу
Надеюсь, это поможет. Также ссылка: Ошибка PLS-00103 в PL / SQL Developer.
источник
«Создать или заменить таблицу» невозможно. Как утверждали другие, вы можете написать процедуру и / или немедленно начать выполнение (...). Поскольку я не вижу ответа о том, как (заново) создать таблицу, я поместил в качестве ответа сценарий.
PS: в соответствии с тем, что упомянул Джеффри-Кемп: этот сценарий ниже НЕ будет сохранять данные, которые уже присутствуют в таблице, которую вы собираетесь удалить. Из-за риска потери данных в нашей компании разрешено изменять только существующие таблицы в производственной среде, и нельзя удалять таблицы. Используя выписку из таблицы, вы рано или поздно получите полицию компании, которая будет стоять у вашего стола.
источник
Я бы сделал что-то подобное
источник
Если это для MS SQL ... Следующий код будет всегда выполняться независимо от того, существует таблица уже или нет.
источник