Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Warum wird 'Create Table' im SQL-Skript dreimal ausgeführt, wenn nur 1 Create-Anweisung verwendet wird?

Sie haben gesagt, Sie haben Code auskommentiert. Es sind diese Kommentare, die das Problem verursachen.

SQL> create table t42(id number(38));

Table created.

SQL> /*insert into t42(id) values (1);*/
create table t42(id number(38))
             *
ERROR at line 1:
ORA-00955: name is already used by an existing object


SQL> /*exec dbms_stats.gather_schema_stats(user);*/
create table t42(id number(38))
             *
ERROR at line 1:
ORA-00955: name is already used by an existing object


SQL> show errors
No errors.
SQL> 

Der Schrägstrich (/ ) am Anfang der Kommentare ist das erneute Senden des Befehls im Puffer .

Die SQL*Plus-Dokumentation sagt auch :

Wenn Sie also Ihre Kommentare ändern, um ein Leerzeichen zwischen /* zu haben und der auskommentierte Code, der nicht passiert, und diese werden ignoriert:

SQL> create table t42(id number(38));

Table created.

SQL> /* insert into t42(id) values (1); */
SQL> /* exec dbms_stats.gather_schema_stats(user); */
SQL> show errors
No errors.
SQL>