Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

por que 'criar tabela' no script sql é executado 3 vezes ao usar apenas 1 instrução de criação?


Você disse que comentou o código. São esses comentários que estão causando o problema.
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> 

A barra (/ ) no início dos comentários está reenviando o comando no buffer .

A documentação do SQL*Plus também diz :

Portanto, se você alterar seus comentários para ter um espaço entre o /* e o código comentado que não acontecerá, e esses serão ignorados:
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>