Oracle
 sql >> база данни >  >> RDS >> Oracle

защо 'create table' в sql скрипт се изпълнява 3 пъти, когато се използва само 1 оператор за създаване?

Казахте, че сте коментирали кода. Именно тези коментари причиняват проблема.

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> 

Наклонената черта (/ ) в началото на коментарите е повторно подаване на командата в буфер .

В документацията на SQL*Plus също се казва :

Така че, ако промените коментарите си, за да имате интервал между /* и коментирания код, който няма да се случи и те ще бъдат игнорирани:

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>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Минус срещу разлика с изключение в ORACLE/SQL Server

  2. Как да разрешите ORA-29285:грешка при запис на файл

  3. Как да конвертирате редове в колони в Oracle SQL

  4. Актуализиране на колона с помощта на произволни уникални стойности от различна таблица

  5. Oracle Live SQL