sql >> Database >  >> RDS >> Oracle

Hernoem kolom met de naam TYPE, LEVEL in sqlplus

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>


  1. Totaal over herhalende groep op items op basis van tijd in Oracle SQL

  2. Atomikos:gegevens worden niet opgeslagen bij gebruik van PostgreSQL

  3. database wordt niet bijgewerkt

  4. Hoe SQL-databases te verbergen waartoe een gebruiker geen toegang heeft?