Oracle
 sql >> Base de données >  >> RDS >> Oracle

Renommer la colonne nommée TYPE, LEVEL dans sqlplus

NIVEAU est un mot clé Oracle , bien que non réservé. Si vous souhaitez l'utiliser comme nom d'objet, vous devez représenter le nom d'un objet avec un identifiant entre guillemets en utilisant des guillemets doubles chaque fois que vous faites référence à cet objet.

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

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

SQL>

C'est la raison pour laquelle vous utilisez le mot-clé LEVEL comme identifiant non cité , il renverra une erreur :

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

Maintenant, selon la documentation sur Database Object Names and Qualifiers , si vous créez l'objet à l'aide de guillemets doubles, il devient sensible à la casse et doit toujours être utilisé de la même manière partout où l'objet est référencé.

Par exemple,

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>

Il est préférable de ne pas utiliser le mot-clé et de donner une convention de nommage appropriée.

SQL> CREATE TABLE t(clevel NUMBER);

Table created.

SQL>