1.1.7 名前の指定
名前の指定には,引用符(")で囲んで指定する方法と,引用符(")で囲まないで指定する方法があります。
- 参考
-
名前を指定する場合,引用符(")で囲んで指定することを推奨します。なお,名前を引用符(")で囲んだ場合,半角英小文字,及び半角英大文字は区別して扱います。
- 理由
-
名前には,予約語と同じ名前を指定できませんが,引用符(")で囲んだ場合は,予約語と同じ名前を指定できます。SQLの拡張に伴って,システムに登録する予約語を追加する場合がありますので,名前はあらかじめ引用符(")で囲んで指定しておくと,追加した予約語と重複する問題が発生しません。
ただし,手続き中又は関数中に指定するカーソル名以外で,次に示す名前をUAPで使用する場合は,引用符(")で囲まないで指定してください。
-
カーソル名
-
SQL文識別子
-
埋込み変数名,標識変数名,ホスト識別子
- 〈この項の構成〉
(1) 共通規則
-
名前に使用できる文字と長さ(バイト数)の制限については,表「名前に使用できる文字と制限」を参照してください。
-
名前に使用する文字は,半角と全角を混在させて使用できます。
-
引用符(")で囲まないで指定した場合,半角英小文字は,半角英大文字として扱います。
-
引用符(")で囲んで指定した場合,半角英小文字,及び半角英大文字を区別して扱います。
-
名前の先頭の文字は,半角英大文字,半角英小文字,又は半角片仮名大文字(ア〜ン,ヲ),又は全角文字で始めてください。
-
全角空白を含むことはできません。
-
以下の文字を含む場合は,引用符(")で囲んで指定してください。
-
半角空白
-
半角ハイフン
ただし,半角ハイフンを含むカーソル名は,手続き又は関数の中に指定する場合だけ引用符(")で囲んでください。
表1‒2 名前に使用できる文字と制限 名前の種類
制限バイト数,又は制限文字数
半角文字の使用可否
全角文字の使用可否
英大文字数字
英小文字
片仮名文字
下線(_)
空白
ハイフン(−)
インデクス型識別子
30バイト
○
○
○※2
○
○
○
○※2
インデクス識別子
○
○
○※2
○
○
○
○※2
埋込み変数名
21文字,22文字,30文字,31文字,63文字※1
○※4
○
○※4
○
×
○※4
○※4
カーソル名
30バイト
○
○
○※2
○
×
○
○※2
外部ルーチン名
255バイト
○
○
○※2
○
×
○
○※2
条件名
30バイト
○
○
○※2
○
○
○
○※2
相関名
○
○
○※2
○
○
○
○※2
属性名
○
○
○※2
○
○
○
○※2
データ型識別子
○
○
○※2
○
○
○
○※2
問合せ名
○
○
○※2
○
○
○
○※2
トリガ識別子
○
○
○※2
○
○
○
○※2
認可識別子
30バイト※5
○
○
×
×
×
×
×
パスワード※3
30バイト
○
○
×
×
×
×
×
表識別子
○
○
○※2
○
○
○
○※2
標識変数名
30文字,31文字,63文字※1
○※4
○
○※4
○
×
○※4
○※4
文ラベル
30バイト
○
○
○※2
○
○
○
○※2
ループ変数名
○
○
○※2
○
○
○
○※2
ホスト識別子
30文字,31文字,63文字※1
○※4
○
○※4
○
×
○※4
○※4
リスト名
30バイト
○
○
○※2
○
○
○
○※2
ルーチン識別子
○
○
○※2
○
○
○
○※2
列名
○
○
○※2
○
○
○
○※2
RDエリア名
○
○
×
○
○
○
×
SQLパラメタ名
○
○
○※2
○
○
○
○※2
SQL文識別子
○
○
○※2
○
×
○
○※2
SQL変数名
○
○
○※2
○
○
○
○※2
制約名
○
○
○※2
○
○
○
○※2
XQuery変数識別子
○
○
○※2
○
○
○
○※2
順序数生成子識別子
○
○
○※2
○
○
○
○※2
接続制約名
○
○
○※2
○
○
○
○※2
-
- (凡例)
-
○:使用できます。
×:使用できません。
- 注※1
-
埋込み変数名,標識変数名,及びホスト識別子の長さは次のとおりです。
名前の種類
ホスト言語
COBOL85
COBOL2002
C言語
埋込み変数名
BLOB型
21文字まで
22文字まで
63文字まで
BLOB型以外
30文字まで
31文字まで
標識変数名,及びホスト識別子
COBOL85及びCOBOL2002の場合,全角文字は1文字としてカウントします。C言語の場合,ユニバーサル文字名は1文字としてカウントします。
- 注※2
-
使用する文字コードによって制限されます。pdntenvコマンド(UNIX版の場合はpdsetupコマンド)で文字コード種別にutf-8,utf-8_ivs,又はchinese-gb18030を指定した場合は使用しないでください。
- 注※3
-
パスワードについての規則を次に示します。
-
先頭は英字にしてください。
-
数字だけのパスワードは指定できません。
-
「単一文字種の指定禁止」を使用した場合,英大文字だけのパスワードは指定できません。また,英小文字だけのパスワードも指定できません。
-
- 注※4
-
-
COBOL85及びCOBOL2002の場合
埋込み変数名,標識変数名,及びホスト識別子には,a〜z,A〜Z,0〜9,下線(_),ハイフン(−),半角片仮名,及び全角文字が使用できます。
全角文字と半角文字を混在させて使用できます。
-
C言語の場合
埋込み変数名,標識変数名,及びホスト識別子には,a〜z,A〜Z,0〜9,及び下線(_)が使用できます。
コンパイラがユニバーサル文字名(\uxxxx及び\Uxxxxxxxx)をサポートしていれば,ユニバーサル文字名を使用できます。
マルチバイト文字は使用できません。
-
- 注※5
-
認可識別子の制限バイト数30バイトはHiRDBの仕様です。HiRDBと連携する関連製品では認可識別子の制限バイト数が異なりますので,ご使用の際は各製品の仕様を確認してください。
(2) SQLの予約語と重複したときの対応
名前がSQLの予約語と重複したときの対応方法を次に示します。(a)の方法を推奨します。(b)の方法は,アプリケーションの修正ができない場合など,SQLが修正できないときに使用してください。
(a) SQLを修正する
予約語と重複する名前を引用符(")で囲むようにSQLを修正してください。なお,名前を引用符(")で囲んだ場合,半角英小文字と半角英大文字は区別して扱われるので注意してください。
(b) SQL予約語削除機能を使用する
SQL予約語削除機能とは,SQLの予約語として登録してあるキーワードを予約語から削除する機能です。名前と重複した予約語がSQL予約語削除機能で削除できる予約語の場合,予約語から削除することで,名前を引用符(")で囲まなくても使用できるようになります。SQL予約語削除機能で削除できる予約語については,「SQL予約語削除機能で削除できる予約語」を参照してください。SQL予約語削除機能で削除できない予約語の場合は,(a)の方法でSQLを修正してください。
削除した予約語は,名前として使用できるようになりますが,同時にキーワードではなくなるため,削除した予約語を使うSQLの機能が使用できなくなる場合があります。使用できなくなるSQLの機能については,「SQL予約語削除機能で削除できる予約語」を参照してください。
- 使用方法
-
SQL予約語削除機能で削除する予約語を記述したSQL予約語削除ファイルは,システム共通定義pd_delete_reserved_word_fileオペランドであらかじめ指定する必要があります。システム共通定義pd_delete_reserved_word_fileオペランドについては,マニュアル「HiRDB システム定義」を参照してください。
また,SQL予約語削除機能を使用する場合は,クライアント環境変数PDDELRSVWDFILEによって,使用するSQL予約語削除ファイルを指定する必要があります。クライアント環境変数PDDELRSVWDFILEについては,マニュアル「HiRDB UAP開発ガイド」を参照してください。
- 注意事項
-
-
SQLオブジェクトを再作成するSQLを実行する場合,クライアント環境変数PDDELRSVWDFILEには,定義時に指定した予約語削除ファイルを指定してください。
-
ディクショナリ搬出入ユティリティ(pdexp)で表の搬出入を行う場合,クライアント環境変数PDDELRSVWDFILEには,定義時に指定した予約語削除ファイルを指定してください。また,搬出元と搬入先で以下の内容を合わせておいてください。
・%PDDIR%\conf\pdrsvwd下の全ファイル
・システム共通定義pd_delete_reserved_word_fileオペランドの指定値
-