Questo perché hai inserito una barra /
alla fine dello script.
A causa di ciò, l'istruzione precedente nel buffer viene nuovamente eseguita. Ciò significa che l'istruzione CREATE TABLE viene eseguita due volte .
Rimuovi la barra dall'estremità. Il punto e virgola è sufficiente come terminatore di istruzioni per singole query.
Ecco come farei io:
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>
Detto questo, hai più problemi nello script.
Non puoi avere uno spazio nel nome della colonna. COL 1
è un nome di colonna non valido. Riceverai Errore identificatore non valido .
Un altro problema:
C'è una virgola in più nella fine dell'elenco delle colonne .