sql >> Database >  >> RDS >> Oracle

ORA-00955 vermijden:naam wordt al gebruikt door een bestaand object

Dat komt omdat je een schuine streep / . hebt geplaatst aan het einde van het script.

Hierdoor wordt het vorige statement in de buffer opnieuw uitgevoerd. Dat betekent dat de CREATE TABLE-instructie twee keer wordt uitgevoerd .

Verwijder de schuine streep van het einde. De puntkomma is voldoende als verklaring terminator voor individuele zoekopdrachten.

Dit is hoe ik het zou doen:

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>

Dat gezegd hebbende, heb je meerdere problemen met het script.

U mag geen spatie in de kolomnaam hebben. COL 1 is een ongeldige kolomnaam. U krijgt Ongeldige identificatiefout .

Een ander probleem:

Er is een extra komma in het einde van de kolomlijst .



  1. Python:mysqldb gebruiken om een ​​MySQL-tabel als woordenboek te importeren?

  2. Hoe Oracle count (distinct) over partitie in Postgres te implementeren

  3. Kan ik mysql dwingen om eerst een subquery uit te voeren?

  4. Hoe kan ik verbinding maken met een Oracle-database als SYS met behulp van een ADO-verbindingsreeks?