Oracle
 sql >> Base de données >  >> RDS >> Oracle

Éviter ORA-00955 :le nom est déjà utilisé par un objet existant

C'est parce que vous avez mis une barre oblique / à la fin du script.

En raison de quoi, l'instruction précédente dans le tampon est exécutée à nouveau. Ce qui signifie que l'instruction CREATE TABLE est exécutée deux fois .

Supprimez la barre oblique à la fin. Le point-virgule suffit comme terminateur d'instruction pour les requêtes individuelles.

Voici comment je procéderais :

SQL> BEGIN
  2     EXECUTE IMMEDIATE 'DROP TABLE TEMP_SOURCE';
  3  EXCEPTION
  4     WHEN OTHERS THEN
  5        IF SQLCODE != -942 THEN
  6           RAISE;
  7        END IF;
  8  END;
  9  /

PL/SQL procedure successfully completed.

SQL>
SQL> CREATE TABLE TEMP_SOURCE
  2    (
  3      COL_1 VARCHAR2(30 CHAR),
  4      COL_2 VARCHAR2(30 CHAR),
  5      COL_3 VARCHAR2(30 CHAR)
  6    );

Table created.

SQL>

Cela dit, vous avez plusieurs problèmes dans le script.

Vous ne pouvez pas avoir d'espace dans le nom de la colonne. COL 1 est un nom de colonne non valide. Vous obtiendrez Erreur d'identifiant non valide .

Autre problème :

Il y a une virgule supplémentaire dans la fin de la liste des colonnes .