NIVEAU is een Oracle zoekwoord , hoewel niet gereserveerd. Als u het als objectnaam wilt gebruiken, moet u de naam van een object weergeven met een id tussen aanhalingstekens met behulp van dubbele aanhalingstekens telkens wanneer u naar dat object verwijst.
SQL> SELECT keyword, reserved FROM V$RESERVED_WORDS WHERE keyword='LEVEL';
KEYWORD R
------------------------------ -
LEVEL N
SQL>
Dat is de reden als u het zoekwoord LEVEL gebruikt als niet-geciteerde identifier , zal het een foutmelding geven:
SQL> CREATE TABLE t(level NUMBER);
CREATE TABLE t(level NUMBER)
*
ERROR at line 1:
ORA-00904: : invalid identifier
Nu, volgens de documentatie over Namen en kwalificaties van databaseobjecten , als u het object maakt met dubbele aanhalingstekens, wordt het hoofdlettergevoelig en moet altijd op dezelfde manier worden gebruikt, overal waar naar het object wordt verwezen.
Bijvoorbeeld,
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>
Het is beter om het trefwoord niet te gebruiken en een juiste naamgevingsconventie te geven.
SQL> CREATE TABLE t(clevel NUMBER);
Table created.
SQL>