sql >> Databáze >  >> RDS >> Oracle

Vyhněte se ORA-00955:název je již používán existujícím objektem

Je to proto, že jste vložili lomítko / na konci skriptu.

Díky tomu se znovu provede předchozí příkaz ve vyrovnávací paměti. To znamená, že příkaz CREATE TABLE se provede dvakrát .

Odstraňte lomítko z konce. Jako zakončení příkazu pro jednotlivé dotazy stačí středník.

Takto bych to udělal:

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>

Přesto máte ve skriptu několik problémů.

V názvu sloupce nemůžete mít mezeru. COL 1 je neplatný název sloupce. Zobrazí se chyba neplatného identifikátoru .

Další problém:

Je tam navíc čárka na konec seznamu sloupců .



  1. Jak nastavit proměnnou z SQL dotazu?

  2. CHYBA MySql! Server skončil bez aktualizace souboru PID

  3. Upozornění, když někdo nahraje video

  4. Jak odstranit koncové nuly z desetinných míst v PostgreSQL