[ Oracle ] 引用識別子と非引用識別子の違い ( テーブル名:NG集 )

Pocket

Oracle では、「 create table “TABLE1” ・・・ 」 のようにスキーマ・オブジェクト ( ここでは、テーブル名 ) などをダブルクォーテーションで囲って作成する場合、「引用識別子を使用してスキーマ・オブジェクトを指定する」 と表現することができます。一方、「 create table table1 ・・・ 」のようにダブルクォーテーションで囲わないでテーブルを作成することを 「 非引用識別子を使用する 」 と表現することができます。

ここでは、その代表的な違いを表にまとめて掲載しています。

スポンサーリンク

引用識別子と非引用識別子の違い

項目 引用識別子 非引用識別子
 Oracle の予約語  テーブル名やカラム名に Oracle の予約語を使用することができる Oracle の予約語は使用することができない
 使用できる文字  すべての文字、句読点および空白を使用できる  データベース・キャラクタ・セットの英数字、アンダースコア ( _ ) 、ドル記号 ( $ ) およびシャープ記号 ( # ) のみ使用できる
 大文字・小文字の区別 区別される (大文字・小文字違いのテーブルを作成できる) 区別されない(大文字・小文字違いのテーブルを作成できない)

違いを意識することは避けたほうが良い

上の表に違いを列挙しましたが、違いを意識しないほうが良いでしょう。何かと面倒になるだけです。

  • テーブル名に Oracle の予約語は使用しない
  • テーブル名に使用する文字は英数字以外はアンダーバーくらいまでの使用に控える
  • 大文字・小文字だけが違うテーブル名は作成しない

感覚でわかると思いますが何故か、できる・できないと、やる・やらないを区別できない人が多いように思います。

連日のストレスからくるハイボールです。イヤミの1つくらい言っておきます。

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *