sql >> Databasteknik >  >> RDS >> Oracle

Undviker ORA-00955:namn används redan av ett befintligt objekt

Det beror på att du har satt ett snedstreck / i slutet av manuset.

På grund av detta exekveras den tidigare satsen i bufferten igen. Vilket betyder att CREATE TABLE-satsen körs två gånger .

Ta bort snedstrecket från slutet. Semikolonet räcker som satsterminator för individuella frågor.

Så här skulle jag göra:

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>

Med det sagt har du flera problem i skriptet.

Du kan inte ha ett mellanslag i kolumnnamnet. COL 1 är ett ogiltigt kolumnnamn. Du kommer att få Ogiltig identifierarfel .

Ett annat problem:

Det finns ett extra komma i slutet av kolumnlistan .



  1. Vad är en MDF fil?

  2. MySQL lagrade procedurbehörigheter

  3. Varför det finns en extra (1 rad(er) påverkas)

  4. ORM, C# och MySQL - Take2