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

Преименувайте колона с име TYPE, LEVEL в sqlplus

НИВО е ключова дума на Oracle , макар и не запазено. Ако искате да го използвате като име на обект, тогава трябва да представите името на обект с идентификатор в кавички с помощта на двойни кавички всеки път, когато се позовавате на този обект.

SQL> SELECT keyword, reserved FROM V$RESERVED_WORDS WHERE keyword='LEVEL';

KEYWORD                        R
------------------------------ -
LEVEL                          N

SQL>

Това е причината, ако използвате ключовата дума LEVEL като идентификатор без кавички , ще изведе грешка:

SQL> CREATE TABLE t(level NUMBER);
CREATE TABLE t(level NUMBER)
               *
ERROR at line 1:
ORA-00904: : invalid identifier

Сега, според документацията относно имена и квалификатори на обекти на бази данни , ако създадете обекта с помощта на двойни кавички, той става чувствителен към главни и малки букви и винаги трябва да се използва по един и същи начин, където и да е препратка към обекта.

Например,

SQL> CREATE TABLE t1("level" NUMBER);

Table created.

SQL>
SQL> ALTER TABLE t1 RENAME COLUMN "level" to clevel;

Table altered.

SQL>
SQL> CREATE TABLE t2("LEVEL" NUMBER);

Table created.

SQL>
SQL> ALTER TABLE t2 RENAME COLUMN "LEVEL" to clevel;

Table altered.

SQL>

По-добре е да не използвате ключовата дума и да дадете правилна конвенция за именуване.

SQL> CREATE TABLE t(clevel NUMBER);

Table created.

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. PLS-00103 създаване на външна таблица с динамичен SQL

  2. Създайте материализиран изглед, който опреснява записите ежедневно

  3. Актуализацията на Oracle виси

  4. Връщане на параметри в изрази за вмъкване на Oracle SQL

  5. Не може да се изпълни динамична заявка в съхранена процедура, докато се избира брой записи