C'est parce que vous avez mis une barre oblique /
à la fin du script.
En raison de quoi, l'instruction précédente dans le tampon est exécutée à nouveau. Ce qui signifie que l'instruction CREATE TABLE est exécutée deux fois .
Supprimez la barre oblique à la fin. Le point-virgule suffit comme terminateur d'instruction pour les requêtes individuelles.
Voici comment je procéderais :
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>
Cela dit, vous avez plusieurs problèmes dans le script.
Vous ne pouvez pas avoir d'espace dans le nom de la colonne. COL 1
est un nom de colonne non valide. Vous obtiendrez Erreur d'identifiant non valide .
Autre problème :
Il y a une virgule supplémentaire dans la fin de la liste des colonnes .