Dat komt omdat je een schuine streep /
. hebt geplaatst aan het einde van het script.
Hierdoor wordt het vorige statement in de buffer opnieuw uitgevoerd. Dat betekent dat de CREATE TABLE-instructie twee keer wordt uitgevoerd .
Verwijder de schuine streep van het einde. De puntkomma is voldoende als verklaring terminator voor individuele zoekopdrachten.
Dit is hoe ik het zou doen:
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>
Dat gezegd hebbende, heb je meerdere problemen met het script.
U mag geen spatie in de kolomnaam hebben. COL 1
is een ongeldige kolomnaam. U krijgt Ongeldige identificatiefout .
Een ander probleem:
Er is een extra komma in het einde van de kolomlijst .