Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Benennen Sie die Spalte mit dem Namen TYPE, LEVEL in sqlplus um

STUFE ist ein Oracle Schlüsselwort , wenn auch nicht reserviert. Wenn Sie ihn als Objektnamen verwenden möchten, müssen Sie den Namen eines Objekts mit einem Bezeichner in Anführungszeichen darstellen mit doppelten Anführungszeichen wann immer Sie auf dieses Objekt verweisen.

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

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

SQL>

Das ist der Grund, wenn Sie das Schlüsselwort LEVEL als Bezeichner ohne Anführungszeichen verwenden , wird ein Fehler ausgegeben:

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

Nun, gemäß der Dokumentation über Datenbankobjektnamen und -qualifikatoren , wenn Sie das Objekt mit doppelten Anführungszeichen erstellen, wird die Groß-/Kleinschreibung beachtet und muss überall dort, wo auf das Objekt verwiesen wird, immer gleich verwendet werden.

Zum Beispiel

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 ist besser, das Schlüsselwort nicht zu verwenden und eine angemessene Namenskonvention zu verwenden.

SQL> CREATE TABLE t(clevel NUMBER);

Table created.

SQL>