1

デフォルトでは、すべてのOracleテーブル名と列は大文字で保存されていますか?

ケーシングに変更できますか?

4

1 に答える 1

2

はい、データ ディクショナリでは、識別子はデフォルトで大文字に変換されます。

大文字と小文字を区別する識別子を作成することで、その動作を変更できます。通常、そうすることはお勧めできませんが、可能です。そのためには、オブジェクトを作成するときと参照するときの両方で、テーブル名と列名を二重引用符で囲む必要があります。大文字と小文字を区別しない通常の動作とは異なり、識別子は大文字と小文字を区別するため、大文字と小文字を区別する必要もあります。

もし、あんたが

CREATE TABLE "foo" (
  "MyMixedCaseColumn" number
);

この場合、テーブル名と列名は大文字と小文字が混在してデータ ディクショナリに格納されます。今後、いずれかの識別子を参照するには、二重引用符を使用する必要があります。そう

SELECT "MyMixedCaseColumn"
  FROM "foo"

動作します。ただし、次のようなもの

SELECT MyMixedCaseColumn
  FROM foo

しない。しません

SELECT "MyMixedCaseColumn"
  FROM "Foo"

一般に、大文字と小文字を区別する識別子を使用しないと、将来の開発者に感謝します。あらゆる場所で二重引用符を使用しなければならないのは煩わしく、すべてのツールやライブラリが大文字と小文字を区別する識別子を使用するシステムに対してテストされているわけではないため、問題が発生することは珍しくありません.

于 2013-08-29T23:55:44.123 に答える