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

Renomeie a coluna chamada TYPE, LEVEL no sqlplus


NÍVEL é uma palavra-chave da Oracle , embora não reservado. Se você quiser usá-lo como um nome de objeto, precisará representar o nome de um objeto com um identificador entre aspas usando aspas duplas sempre que você se referir a esse objeto.
SQL> SELECT keyword, reserved FROM V$RESERVED_WORDS WHERE keyword='LEVEL';

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

SQL>

Esse é o motivo se você usar a palavra-chave LEVEL como identificador sem aspas , ele lançará um erro:
SQL> CREATE TABLE t(level NUMBER);
CREATE TABLE t(level NUMBER)
               *
ERROR at line 1:
ORA-00904: : invalid identifier

Agora, de acordo com a documentação sobre Nomes e qualificadores de objetos de banco de dados , se você criar o objeto usando aspas duplas, ele se tornará diferencia maiúsculas de minúsculas e deve ser usado sempre da mesma maneira onde quer que o objeto seja referenciado.

Por exemplo,
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>

É melhor não usar a palavra-chave e fornecer uma convenção de nomenclatura adequada.
SQL> CREATE TABLE t(clevel NUMBER);

Table created.

SQL>