Oracle では、「 create table “TABLE1” ・・・ 」 のようにスキーマ・オブジェクト ( ここでは、テーブル名 ) などをダブルクォーテーションで囲って作成する場合、「引用識別子を使用してスキーマ・オブジェクトを指定する」 と表現することができます。一方、「 create table table1 ・・・ 」のようにダブルクォーテーションで囲わないでテーブルを作成することを 「 非引用識別子を使用する 」 と表現することができます。
ここでは、その代表的な違いを表にまとめて掲載しています。
スポンサーリンク
引用識別子と非引用識別子の違い
項目 | 引用識別子 | 非引用識別子 |
---|---|---|
Oracle の予約語 | テーブル名やカラム名に Oracle の予約語を使用することができる | Oracle の予約語は使用することができない |
使用できる文字 | すべての文字、句読点および空白を使用できる | データベース・キャラクタ・セットの英数字、アンダースコア ( _ ) 、ドル記号 ( $ ) およびシャープ記号 ( # ) のみ使用できる |
大文字・小文字の区別 | 区別される (大文字・小文字違いのテーブルを作成できる) | 区別されない(大文字・小文字違いのテーブルを作成できない) |
違いを意識することは避けたほうが良い
上の表に違いを列挙しましたが、違いを意識しないほうが良いでしょう。何かと面倒になるだけです。
- テーブル名に Oracle の予約語は使用しない
- テーブル名に使用する文字は英数字以外はアンダーバーくらいまでの使用に控える
- 大文字・小文字だけが違うテーブル名は作成しない
感覚でわかると思いますが何故か、できる・できないと、やる・やらないを区別できない人が多いように思います。
連日のストレスからくるハイボールです。イヤミの1つくらい言っておきます。