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

Pocket

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

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

スポンサーリンク

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

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

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

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

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

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

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

スポンサーリンク

Pocket

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>