sql >> Databasteknik >  >> RDS >> Oracle

Byt namn på kolumn med namnet TYPE, LEVEL i sqlplus

NIVÅ är ett sökord för Oracle , dock inte reserverad. Om du vill använda det som ett objektnamn måste du representera namnet på ett objekt med citattecken med dubbla citattecken när du refererar till det objektet.

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

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

SQL>

Det är anledningen om du använder sökordet LEVEL som identifierare utan citattecken , kommer det att ge ett felmeddelande:

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

Nu, enligt dokumentationen om Databasobjektnamn och kvalificeringar , om du skapar objektet med dubbla citattecken blir det skiftlägeskänsligt och måste alltid användas på samma sätt varhelst objektet refereras.

Till exempel,

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>

Det är bättre att inte använda nyckelordet och ge en korrekt namnkonvention.

SQL> CREATE TABLE t(clevel NUMBER);

Table created.

SQL>


  1. Hur man återställer/ändrar MySql root-lösenord på kommandoraden i ubuntu linux

  2. PL/SQL-jämförelsefel i triggern (PLS-00405)

  3. Ring Oracle-paketfunktionen med Odbc från C#

  4. Serialisera vs Implode