Това е така, защото сте поставили наклонена черта /
в края на скрипта.
Поради което предишният оператор в буфера се изпълнява отново. Което означава, че изявлението CREATE TABLE се изпълнява два пъти .
Премахнете наклонената черта от края. Точката и запетая е достатъчна като терминатор за отделни заявки.
Ето как бих направил:
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>
Като каза това, имате множество проблеми в скрипта.
Не можете да имате интервал в името на колоната. COL 1
е невалидно име на колона. Ще получите Грешка за невалиден идентификатор .
Друг проблем:
Има допълнителна запетая в края на списъка с колони .