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ů .