CREATE OR REPLACE ... oui mais pour les tables ?

Les vues, fonctions, procédures stockées, packages peuvent être créés avec l'instruction :
CREATE OR REPLACE type_objet nom_objet
Ce qui permet de faire abstraction de l'existence ou non de l'objet mais cette option n'est pas valable pour les tables ou index.
A contrario, si l'on place un ordre de DROP précédant l'ordre de création, l'ordre peut générer une erreur et stopper l'exécution du script global si l'objet en question n'existe pas.

Afin de passer outre ces erreurs, nous pouvons passer par un script PL où une exception sera levée lors de la suppression :

BEGIN

DROP TABLE t1;

EXCEPTION
WHEN OTHERS THEN
NULL;
END;
/

CREATE TABLE t1 (col1 varchar2(50 char));


BEGIN

DROP INDEX IX1;

EXCEPTION
WHEN OTHERS THEN
NULL;
END;
/

CREATE INDEX IX1 on t1.col1;


Voir aussi :
- Gérer l'auto-increment sous Oracle
- La table DUAL pour développer
- Exporter la structure d'une base
- Les exceptions SQL oracle
- Les index




Vous n'avez pas trouver réponse à votre question ? Préciser votre recherche :

Catégories