識別子

識別子 (アイデンティファイアー、identifier) は、SQL スクリプト内のオブジェクトのユーザー定義の一意の名前です。

識別子には、1 つ以上の文字を含めることができます。
識別子は、アルファベット文字 (a-z、A-Z) で始まる必要があります。
最初の文字の後に、次の文字が有効です。
英数字: a-z、A-Z、0-9
セパレーター: , (カンマ)、 ; (セミコロン)、 ' (一重引用符のペア)
特殊文字: _ (アンダースコア)、 / (スラッシュ)、$ (ドル記号)、# (ハッシュ記号)
キーワードが二重引用符を使用してエスケープされていない限り、識別子を SQL スクリプト キーワードにすることはできません (「SQL スクリプトのキーワード」を参照)。

SQL スクリプトのキーワードを名前に持つ宣言変数の例を以下に示します。

DECLARE "VALUE" INTEGER;
DECLARE "CURSOR" CURSOR;

ここで、SQL スクリプトのキーワード VALUECURSOR は二重引用符で囲まれています。

二重引用符を使用して識別子をエスケープすると、スペース、ダッシュ、または他の言語の文字など、通常は使用できない文字を含めることもできます。

それ以外の場合は不正な文字を含む変数の宣言の例:

DECLARE "First Name" VARCHAR (40) ;
DECLARE "% Returned" DOUBLE;
識別子は、プロシージャ名、パラメーター名、カーソル名、フィールド名、変数名、カーソル変数名、データ タイプ名、例外名、ブロックのラベル (BEGIN/END、LOOP、WHILE、REPEAT、FOR、LEAVE、ITERATE など) に使用することができます。
TDV SQL スクリプトは、一連の処理規則によって識別子を解決します。
識別子は大文字と小文字が区別されません。
SQL 式内の識別子は、最初に SQL コンテキストでローカルに検索することによって評価されます。識別子がローカル SQL コンテキスト内で解決された場合、SQL エンジンは検索を続行しません。

たとえば、SQL WHERE 句のデータベース カラムでの識別子名の一致は、ローカル変数、プロシージャ名、または仮パラメーターの名前よりも優先されます。

識別子がローカル コンテキストで解決されない場合、検索は最小のプレフィックス ベースを使用して親コンテキストに進み、スキーマ レベルのスコープに移動します。
SQL コンテキスト スペースでは大文字と小文字が区別されないため、大文字と小文字の違いは、SQL コンテキスト内の識別子と一致する名前を区別しません。
一致するものが見つからない場合は、宣言されていない識別子エラーが返されます。