Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Vermeidung von ORA-00955:Name wird bereits von einem vorhandenen Objekt verwendet

Das liegt daran, dass Sie einen Schrägstrich / eingefügt haben am Ende des Skripts.

Dadurch wird die vorherige Anweisung im Puffer erneut ausgeführt. Das heißt, die CREATE TABLE-Anweisung wird zweimal ausgeführt .

Entfernen Sie den Schrägstrich am Ende. Als Anweisungsabschlusszeichen für einzelne Abfragen reicht das Semikolon.

So würde ich vorgehen:

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>

Allerdings haben Sie mehrere Probleme im Skript.

Der Spaltenname darf kein Leerzeichen enthalten. COL 1 ist ein ungültiger Spaltenname. Sie erhalten Ungültiger Bezeichner-Fehler .

Ein weiteres Problem:

Es gibt ein zusätzliches Komma am Ende der Spaltenliste .