Oracle
 sql >> Database >  >> RDS >> Oracle

Evitando ORA-00955:il nome è già utilizzato da un oggetto esistente

Questo perché hai inserito una barra / alla fine dello script.

A causa di ciò, l'istruzione precedente nel buffer viene nuovamente eseguita. Ciò significa che l'istruzione CREATE TABLE viene eseguita due volte .

Rimuovi la barra dall'estremità. Il punto e virgola è sufficiente come terminatore di istruzioni per singole query.

Ecco come farei io:

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>

Detto questo, hai più problemi nello script.

Non puoi avere uno spazio nel nome della colonna. COL 1 è un nome di colonna non valido. Riceverai Errore identificatore non valido .

Un altro problema:

C'è una virgola in più nella fine dell'elenco delle colonne .