Eso es porque has puesto una barra inclinada /
al final del guión.
Debido a lo cual, la declaración anterior en el búfer se ejecuta nuevamente. Lo que significa que la declaración CREATE TABLE se ejecuta dos veces .
Retire la barra del final. El punto y coma es suficiente como terminador de declaraciones para consultas individuales.
Así es como lo haría:
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>
Habiendo dicho eso, tienes múltiples problemas en el script.
No puede tener un espacio en el nombre de la columna. COL 1
es un nombre de columna no válido. Obtendrá Error de identificador no válido .
Otro problema:
Hay una coma extra en el final de la lista de columnas .