Oracle
 sql >> Database >  >> RDS >> Oracle

Rinomina la colonna denominata TYPE, LEVEL in sqlplus

LIVELLO è una parola chiave di Oracle , anche se non riservato. Se vuoi usarlo come nome di un oggetto, devi rappresentare il nome di un oggetto con un identificatore tra virgolette utilizzando virgolette doppie ogni volta che fai riferimento a quell'oggetto.

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

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

SQL>

Questo è il motivo se utilizzi la parola chiave LEVEL come identificatore senza virgolette , genererà un errore:

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

Ora, per la documentazione su Nomi e qualificatori di oggetti database , se crei l'oggetto utilizzando le virgolette doppie, diventa maiuscole/minuscole e deve essere sempre utilizzato allo stesso modo ovunque si faccia riferimento all'oggetto.

Ad esempio,

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>

È meglio non utilizzare la parola chiave e fornire una convenzione di denominazione adeguata.

SQL> CREATE TABLE t(clevel NUMBER);

Table created.

SQL>