„Utwórz lub zamień tabelę” nie jest możliwe. Jak powiedzieli inni, możesz napisać procedurę i / lub użyć natychmiastowego rozpoczęcia wykonywania (...). Ponieważ nie widzę odpowiedzi na temat tego, jak (ponownie) utworzyć tabelę, jako odpowiedź wstawiłem skrypt.
PS: zgodnie z tym, o czym wspomniał jeffrey-kemp: ten poniżej skrypt NIE zapisze danych, które są już obecne w tabeli, którą zamierzasz upuścić. Ze względu na ryzyko utraty danych w naszej firmie można zmieniać tylko istniejące tabele w środowisku produkcyjnym, a nie wolno usuwać tabel. Korzystając z wyciągu z tabeli drop table, prędzej czy później dostaniesz policję firmy stojącą przy Twoim biurku.
--Create the table 'A_TABLE_X', and drop the table in case it already is present
BEGIN
EXECUTE IMMEDIATE
'
CREATE TABLE A_TABLE_X
(
COLUMN1 NUMBER(15,0),
COLUMN2 VARCHAR2(255 CHAR),
COLUMN3 VARCHAR2(255 CHAR)
)';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -955 THEN -- ORA-00955: object name already used
EXECUTE IMMEDIATE 'DROP TABLE A_TABLE_X';
END IF;
END;
CREATE OR REPLACE
działa również dla synonimów i wyzwalaczy