«Créer ou remplacer une table» n'est pas possible. Comme d'autres l'ont indiqué, vous pouvez écrire une procédure et / ou utiliser begin execute immédiatement (...). Parce que je ne vois pas de réponse sur la façon de (re) créer le tableau, j'ai mis un script comme réponse.
PS: dans la lignée de ce que jeffrey-kemp a mentionné: ce script ci-dessous ne sauvegardera PAS les données déjà présentes dans la table que vous allez supprimer. En raison du risque de perte de données, dans notre entreprise, il est uniquement autorisé de modifier les tables existantes sur l'environnement de production, et il n'est pas autorisé à supprimer des tables. En utilisant la déclaration de la table de dépôt, tôt ou tard, vous obtiendrez la police de l'entreprise à votre bureau.
--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
fonctionne également pour les synonymes et les déclencheurs