命名規則、SQL における
名前を作成する際の規則は、その名前を使って指定するオブジェクトの タイプによって異なります。
多くのデータベース・オブジェクトにはスキーマ修飾名があります。 スキーマ修飾名は、単一の SQL ID (その場合は schema-name が暗黙的)、または schema-name の後にピリオドと SQL ID が続くもので構成されます。 SQL識別子のルールに関する詳細は、「SQLにおける識別子」 を参照してください。
- accelerator-name
- アクセラレーター専用表を識別する名前。 アクセラレーター名は 1 文字から 8 文字の大文字または数字です。 この名前は、Db2 サブシステムまたはデータ共用グループ内で固有である必要があります。
- alias-name
別名を示す修飾名または非修飾名。 完全修飾別名は 3 部構成の名前です。 最初の部分は、別名が定義されている DBMS を指定するロケーション名です。 2 番目の部分はスキーマ名です。 3 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。2 部構成のシーケンスは、現行サーバーのロケーション名に よって暗黙的に修飾されます。 最初の部分はスキーマ名です。 2 番目の部分は SQL ID です。 2 つの部分は必ずピリオドで区切ります。
1 部構成または非修飾の別名は、2 つの暗黙的修飾子を持つ SQL ID です。 最初の暗黙的修飾子は現行サーバーのロケーション名です。 2つ目はスキーマ名で、これは 「無条件エイリアス、インデックス、JARファイル、マスク、権限、シーケンス、テーブル、トリガー、ビュー名」 で指定されたルールによって決定されます。
詳細はエイリアスを参照してください。

- 配列タイプ名
- 配列タイプを示す修飾名または非修飾名。
修飾配列タイプは 2 部構成の名前です。 最初の部分は配列タイプのスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。
非修飾の配列タイプ名は、暗黙的修飾子を持つ SQL ID です。 暗黙的な修飾子はスキーマ名であり、これは配列型が現れるコンテキストによって決定され、 無修飾のオブジェクト名解決のルールで説明されている。
- authorization-name
- 一組の特権を示す SQL ID。 これには、ユーザー、ユーザー・グループ、またはロールを指定することもできます。 ユーザーまたはユーザーグループの場合、 Db2 は、このプロパティを制御しません。 Db2 は、このプロパティを制御します。 承認名と承認 ID の違いについては、「承認 ID、ロール、承認名」を参照してください。
- aux-table-name
- 補助表を示す修飾名または非修飾名。 名前の規則は、table-name の規則と同じです。 テーブル名を参照してください。
- bpname
- バッファー・プールを識別する名前。 以下のリストは、様々なサイズの
バッファー・プールの名前を示しています。
- 4KB
- BP0, BP1, BP2, …, BP49
- 8KB
- BP8K0, BP8K1, BP8K2, …, BP8K9
- 16KB
- BP16K0, BP16K1, BP16K2, …, BP16K9
- 32KB
- BP32K, BP32K1, BP32K2, …, BP32K9
- built-in-type
- IBM® が提供するデータ型を識別する修飾名または非修飾名。 修飾名は SYSIBM にピリオドと組み込みデータ・タイプの名前が続きます。 修飾されていない名前には、暗黙的な修飾子であるスキーマ名があり、これは 「修飾されていないオブジェクト名の解決」 のルールによって決定されます。
- catalog-name
統合カタログ機能 (ICF) カタログを指定する SQL ID。 識別子は文字で始まり、特殊文字や、各国語用のアルファベット拡張文字(米国では$、#、@)を含んではなりません。 これらの 3 つのコード・ポイント (X'5B', X'7B', and X'7C') は、CCSID に応じて異なる文字を表すため、避ける必要があります。
- clone-table-name
- クローン表の名前を指定する修飾名または非修飾名。 表名の修飾について詳しくは、table-name の定義を参照してください。
- collection-id
- パッケージのコレクションを識別する SQL ID。 例えば、パッケージ ID の修飾子としてのコレクション ID など。
- column-name
- 表またはビューの列を指定する修飾された名前または非修飾の名前。
修飾列名は、修飾子の後に 1 つのピリオドと SQL ID を続けた形です。 修飾子は、表名、ビュー名、シノニム、別名、または相関名です。 非修飾列名は SQL ID です。
- constraint-name
- 表の主キー制約、チェック制約、参照制約、またはユニーク制約を指定する SQL ID。
- context-name
- トラステッド・コンテキストを指定する SQL ID。
- correlation-name
- 表、ビュー、あるいは表またはビューの個々の行を示す SQL ID。
- cursor-name
- SQL カーソルを指定する SQL ID。 SQLJ の場合、cursor-name はイテレーターのインスタンスを識別するホスト変数 (標識変数なし) です。
- database-name
- データベースを指定する SQL ID。 この ID は、文字で開始しなければならず、特殊文字を 含めてはなりません。
- descriptor-name
- SQL 記述子域 (SQLDA) を示すホスト ID。 ホスト識別子の説明については、 ホスト変数をご覧ください。 記述子名に標識変数を入れることはできません。
- distinct-type-name
- 特殊タイプを指定する修飾された名前または非修飾の名前。
修飾特殊タイプは 2 部構成の名前です。 最初の部分は特殊タイプのスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。
非修飾の特殊タイプ名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子はスキーマ名であり、これは 「無修飾の型、関数、プロシージャ、グローバル変数、および特定の名前 」のルールで説明されているように、個別の型が現れるコンテキストによって決定されます。
- external-program-name
- 関数が呼び出されたとき、またはプロシージャー名が CALL ステートメントに指定されたときに実行されるプログラムを指定する名前。
- function-name
- ユーザー定義関数、特殊タイプの作成時に生成された cast 関数、
または組み込み関数を示す修飾名または非修飾名。
修飾関数名は 2 部構成の名前です。 最初の部分は関数のスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。
非修飾の関数名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子はスキーマ名であり、これは 「無修飾型、関数、プロシージャ、グローバル変数、および特定の名前 」のルールで説明されているように、無修飾名が現れるコンテキストによって決定されます。
- global-variable-name
- グローバル変数を指定する、修飾された名前または非修飾の名前。
修飾グローバル変数名は 2 部構成の名前です。 最初の部分はグローバル変数のスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。
非修飾のグローバル変数名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子はスキーマ名であり、これは 「無修飾型、関数、プロシージャ、グローバル変数、および特定の名前 」のルールで説明されているように、無修飾名が現れるコンテキストによって決定されます。
- host-label
- ホスト・プログラム内のラベルを指定するトークン。
- host-variable
- ホスト変数を指定するトークンを連結したもの。 ホスト変数には、少なくとも1つのホスト識別子が含まれます。詳細は、「ホスト変数」 を参照してください。
- index-name
- 索引を示す修飾名または非修飾名。
修飾索引名は、許可 ID またはスキーマ名の後にピリオドと SQL ID を付けたものです。
非修飾の索引名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子は認証IDであり、修飾されていない名前が現れるコンテキストによって決定されます。これは、「修飾されていないオブジェクト名の解決 」のルールで説明されているとおりです。
宣言済み一時表の索引の場合、修飾子は SESSION でなければなりません。
FL 502 キーラベル名
統合暗号化サービス機能 (ICSF) 鍵ラベルの値に対応する SQL ID。 keylabel-name は最大 64 文字で構成することができます。 最初の文字は、アルファベットまたは記号 (#、$、@) でなければなりません。名前には記号を含めないことをお勧めします (@( X'7C' )、#( X'7B' )、または$( X'5B' ))。
識別子にはアンダースコア(_)文字を含めてはなりません。 区切り形式で許可される文字は、通常の形式で許可される文字と同じですが、ピリオド(.)を含めることができますが、最初の文字としてピリオドを使用することはできません。 詳細は、 キーラベル( z/OS ICSF )を参照してください。

- location-name
- ロケーションの名前を指定する SQL ID。 ロケーション名は 1 から 16 バイトで、英字のエクステンダー (国別文字)、小文字、またはカタカナ文字は含まれません。 区切り形式で使える文字は、通常の形式で使える文字と同じです。
- mask-name
- マスクを示す修飾名または非修飾名。
修飾マスク名は 2 部構成の名前です。 最初の部分はスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。
1 部構成または非修飾のマスク名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子は認証IDであり、修飾されていない名前が現れるコンテキストによって決定されます。これは、「修飾されていないオブジェクト名の解決 」のルールで説明されているとおりです。
- package-name
- パッケージを指定する、修飾された名前または非修飾の名前。 package-name の非修飾形式は、SQL ID です。 package-name は、小文字または特殊文字を含む区切り ID であってはなりません。 SQL ステートメント内では、package-name を修飾する必要があります。 SQL の外部のコンテキストでは、パッケージ名を非修飾名として指定できることがあります。
- parameter-name
- SQL プロシージャーまたは SQL 関数内の パラメーターを指定する SQL ID。
- permission-name
- アクセス権を示す修飾名または非修飾名。
修飾アクセス権名は 2 部構成の名前です。 最初の部分はスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。
1 部構成または非修飾のアクセス権名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子は認証IDであり、修飾されていない名前が現れるコンテキストによって決定されます。これは、「修飾されていないオブジェクト名の解決 」のルールで説明されているとおりです。
- plan-name
- アプリケーション・プランを指定する SQL ID。 ID は、小文字または特殊文字を含む区切り ID であってはなりません。
- procedure-name
- ストアード・プロシージャーを示す修飾名または非修飾名。
完全修飾のプロシージャー名は、3 部構成の名前です。 最初の部分は、プロシージャーが格納されている DBMS を示すロケーション名です。 2 番目の部分はストアード・プロシージャーのスキーマ名です。 3 番目の部分は SQL ID です。 修飾名の各部分は必ずピリオドで区切ります。
2 部構成のプロシージャー名は、現行サーバーのロケーション名に よって暗黙的に修飾されます。 最初の部分はストアード・プロシージャーのスキーマ名です。 2 番目の部分は SQL ID です。 2 つの部分は必ずピリオドで区切ります。
1 部構成 (または非修飾) のプロシージャー名は、SQL ID と 2 つの暗黙的修飾子からなります。 最初の暗黙的修飾子は現行サーバーのロケーション名です。 2つ目の暗黙的な修飾子はスキーマ名であり、これは修飾されていない名前が現れるコンテキストによって決定され、 修飾されていないオブジェクト名の解決のルールで説明されている。
修飾名または非修飾名の中にある SQL ID は、アスタリスク (*) であってはなりません。
- profile-name
- RACF® のプロファイル名に対応するSQL識別子。
- program-name
- 出口ルーチンを指定する SQL ID。
- role-name
- ロールを指定する SQL ID。 この ID は SYS の文字で始まってはならず、 ACCESSCTRL、DATAACCESS、DBADM、DBCTRL、DBMAINT、 NONE、NULL、PACKADM、PUBLIC、SECADM、および SQLADM であってはなりません。
- routine-version-id
- ルーチンのバージョンを指定する最大 64 EBCDIC バイトの SQL ID。 ID の UTF-8 表現が 122 バイトを超えてはなりません。
- savepoint-name
- セーブポイントを指定する SQL ID。
- schema-name
- SQL オブジェクトの論理グループ化を提供する SQL ID。 schema-name は、SQL オブジェクト名の修飾子として使用されます。
- seclabel-name
- RACF セキュリティラベルの値に対応するSQL識別子。 名前に国別文字 (@ (X'7C')、# (X'7B')、または $ (X'5B')) を含まないようにお勧めします。 テーブルがUnicodeテーブルであり、セキュリティラベル名に非ASCII文字が含まれている場合、 Db2 がEBCDICからUnicodeに値を変換する際に置換が発生すると、エラーが発生する可能性があります。
- sequence-name
- シーケンスを指定する修飾名または非修飾名。
修飾シーケンス名は 2 部構成の名前です。 最初の部分はスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。
1 部構成または非修飾のシーケンス名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子は認証IDであり、修飾されていない名前が現れるコンテキストによって決定されます。これは、「無修飾のエイリアス、インデックス、JARファイル、マスク、パーミッション、シーケンス、テーブル、トリガー、およびビュー名 」のルールで説明されているとおりです。
- server-name
- アプリケーション・サーバーを指定する SQL ID。 この ID は、文字で開始しなければならず、小文字または特殊文字を 含めてはなりません。
- specific-name
- ユーザー定義関数の固有名を指定する修飾名または非修飾名。
修飾特定名は 2 部構成の名前です。 最初の部分はスキーマ名です。 2 番目の部分は SQL ID であり、アスタリスク (*) であってはなりません。各部分をピリオドで区切る必要があります。
非修飾の特定名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子はスキーマ名であり、これは 「無修飾型、関数、プロシージャ、グローバル変数、および特定の名前 」のルールで説明されているように、無修飾名が現れるコンテキストによって決定されます。
特定名を使用すれば、変更や、コメント付け、ドロップ、特権の付与、特権の 取り消しを行うための関数を識別したり、 別の関数のソース関数にすることができます。 特定名は、関数の呼び出しには使用できません。 特定の SQL ステートメントで使用されるだけでなく、関数を一意に識別するために特定の名前を Db2 コマンドで使用する必要があります。
- SQL-condition-name
SQL ルーチンまたはトリガー内の条件を指定する SQL ID。
- SQL-label
SQL ルーチンまたはトリガーのラベルを指定する SQL ID。
- SQL-parameter-name
SQL ルーチン本体でパラメーターを指定する修飾名または非修飾名。 非修飾形式の SQL-parameter-name は、SQL ID です。 修飾された形式は、関数名またはプロシージャ名にピリオドとSQL識別子が続くものです。
- SQL-variable-name
SQL ルーチンまたはトリガー本体で変数を指定する修飾名または非修飾名。 非修飾形式の SQL-variable-name は、SQL ID です。 有効な形式は、SQLラベルにピリオド(.)とSQL識別子が続くものです。
- statement-name
- 準備済み SQL ステートメントを指定する SQL ID。
- stogroup-name
- ストレージ・グループを指定する SQL ID。
- シノニム
- シノニム、表、またはビューを示す SQL ID。 表またはビューは、現行サーバーに存在していなければなりません。 修飾名がシノニムとして解釈されることはありません。
- table-name
- 表を指定する修飾された名前または非修飾の名前。
完全修飾の表名は 3 部構成の名前です。 最初の部分は、表が保管されている DBMS を示すロケーション名です。 2 番目の部分はスキーマ名です。 3 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。
2 部構成の表名は、暗黙的に現行サーバーのロケーション名によって修飾されます。 最初の部分はスキーマ名です。 2 番目の部分は SQL ID です。 2 つの部分は必ずピリオドで区切ります。
1 部構成または非修飾の表名は、暗黙的な 2 つの修飾子を持つ SQL ID です。 最初の暗黙的修飾子は現行サーバーのロケーション名です。 2つ目はスキーマ名で、これは 「無条件エイリアス、インデックス、JARファイル、マスク、パーミッション、シーケンス、テーブル、トリガー、ビュー名」 で定められたルールによって決定されます。 宣言済み一時表の場合、修飾子 (3 部構成の名前では 2 番目の部分、2 部構成の名前では最初の部分) は SESSION でなければなりません。 宣言された一時テーブルが定義され、その後、他のSQLステートメントでその宣言された一時テーブルを参照する場合の名前の指定に関する詳細は、「DECLARE GLOBAL TEMPORARY TABLE ステートメント」 を参照してください。
- table-space-name
- 識別されたデータベースの表スペースを指定する SQL ID。 この ID は、文字で開始しなければならず、特殊文字を 含めてはなりません。 データベースが示されていない場合は、DSNDB04 が暗黙指定されます。
- trigger-name
- トリガーを示す修飾名または非修飾名。
修飾トリガー名は 2 部構成の名前です。 最初の部分はトリガーのスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。
非修飾のトリガー名は、暗黙的修飾子を持つ SQL ID です。 暗黙的な修飾子はスキーマ名であり、修飾されていない名前が現れるコンテキストによって決定されます。これは、「無修飾エイリアス、インデックス、JARファイル、マスク、パーミッション、シーケンス、テーブル、トリガ、およびビュー名 」のルールで説明されているとおりです。
トリガーバージョンID
トリガーのバージョンを指定する最大 64 EBCDIC バイトの SQL ID。 ID の UTF-8 表現が 122 バイトを超えてはなりません。
- view-name
- ビューを示す修飾名または非修飾名。
完全修飾のビュー名は、3 部構成の名前です。 最初の部分は、ビューが定義されている DBMS を示すロケーション名です。 2 番目の部分はスキーマ名です。 3 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。
2 部構成のビュー名は、現行サーバーのロケーション名に よって暗黙的に修飾されます。 最初の部分はスキーマ名です。 2 番目の部分は SQL ID です。 2 つの部分は必ずピリオドで区切ります。
1 部構成または非修飾のビュー名は、暗黙的な 2 つの修飾子を持つ SQL ID です。 最初の暗黙的修飾子は現行サーバーのロケーション名です。 2つ目はスキーマ名で、これは 「無修飾名」のルールで説明されているように、無修飾名が現れるコンテキストによって決定されます。
- XML-attribute-name
- XML 属性名として使用される ID。
- XML-element-name
- XML エレメント名として使用される ID。