sql >> データベース >  >> RDS >> Oracle

sqlplus の TYPE、LEVEL という名前の列の名前を変更します

    レベル オラクルのキーワードです 、予約されていません。オブジェクト名として使用したい場合は、引用符で囲まれた識別子でオブジェクトの名前を表す必要があります 二重引用符の使用 そのオブジェクトを参照するときはいつでも。

    SQL> SELECT keyword, reserved FROM V$RESERVED_WORDS WHERE keyword='LEVEL';
    
    KEYWORD                        R
    ------------------------------ -
    LEVEL                          N
    
    SQL>
    

    これが、キーワード LEVEL を引用符なしの識別子として使用する理由です。 、エラーがスローされます:

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

    ここで、データベース オブジェクト名と修飾子に関するドキュメントに従って 、二重引用符を使用してオブジェクトを作成すると、大文字と小文字が区別されます オブジェクトが参照される場合は常に同じ方法で使用する必要があります。

    たとえば、

    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>
    

    キーワードを使用せず、適切な命名規則を指定することをお勧めします。

    SQL> CREATE TABLE t(clevel NUMBER);
    
    Table created.
    
    SQL>
    


    1. Golang MySQLエラー-packets.go:33:予期しないEOF

    2. MySQLの各行を個別のDIVに表示します

    3. SQLクエリ:ある列から別の列とペアになっているアイテムを取得する方法。

    4. UNIONmysqlクエリを最適化する