Oracleで識別子を二重引用符で囲むと、Oracleは、デフォルトの大文字と小文字を区別せずに、識別子を大文字と小文字を区別するものとして扱います。名前を二重引用符で囲んだテーブル(または列)を作成する場合は、常に二重引用符で識別子を参照し、大文字と小文字を正しく指定する必要があります(二重引用符が無意味であるすべての大文字の識別子を除く)。 。
オラクルは、常に大文字と小文字を区別する識別子の照合を行っています。ただし、照合を行う前に、大文字に二重引用符で囲まれていない識別子を常にキャストします。識別子を二重引用符で囲むと、Oracleは大文字へのキャストをスキップします。
だからあなたが
のようなことをするならCREATE TABLE my_table(
col1 number,
col2 number
)
できます
SELECT * FROM my_table
SELECT * FROM MY_TABLE
SELECT * FROM My_Table
SELECT * FROM "MY_TABLE"
しかし
のようなもの SELECT * FROM "my_table"
失敗します。
一方、次のようなことをすると
CREATE TABLE "my_other_table"(
col1 number,
col2 number
)
できません
SELECT * FROM my_other_table
SELECT * FROM MY_OTHER_TABLE
SELECT * FROM My_Other_Table
SELECT * FROM "MY_OTHER_TABLE"
しかしこれ
SELECT * FROM "my_other_table"
動作します