sql >> Base de Datos >  >> RDS >> Oracle

Cambiar el nombre de la columna denominada TIPO, NIVEL en sqlplus

NIVEL es una palabra clave de Oracle , aunque no reservado. Si desea usarlo como nombre de objeto, debe representar el nombre de un objeto con un identificador entrecomillado usando comillas dobles siempre que se refiera a ese objeto.

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

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

SQL>

Esa es la razón si usa la palabra clave LEVEL como identificador sin comillas , arrojará un error:

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

Ahora, según la documentación sobre Nombres y calificadores de objetos de base de datos , si crea el objeto usando comillas dobles, se vuelve sensible a mayúsculas y minúsculas y debe usarse siempre de la misma manera dondequiera que se haga referencia al objeto.

Por ejemplo,

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>

Es mejor no usar la palabra clave y dar una convención de nomenclatura adecuada.

SQL> CREATE TABLE t(clevel NUMBER);

Table created.

SQL>