Det er fordi, du har sat en skråstreg /
i slutningen af scriptet.
Derfor udføres den forrige sætning i bufferen igen. Hvilket betyder, at CREATE TABLE-sætningen udføres to gange .
Fjern skråstreget fra enden. Semikolon er nok som sætningsterminator for individuelle forespørgsler.
Sådan ville jeg gøre:
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>
Når det er sagt, har du flere problemer i scriptet.
Du kan ikke have et mellemrum i kolonnenavnet. COL 1
er et ugyldigt kolonnenavn. Du vil få Ugyldig identifikatorfejl .
Et andet problem:
Der er et ekstra komma i slutningen af kolonnelisten .