リファレンスガイド> TDV SQLスクリプト> SQL言語の概念> 識別子
 
識別子
識別子は、SQLスクリプト内のオブジェクトのユーザー定義の一意の名前です。
識別子には1つ以上の文字を含めることができます。
識別子は英字(a-z、A-Z)で始まる必要があります。
最初の文字の後、次の文字が有効です。
英数字:a-z、A-Z、0-9
Separators: , (comma), ; (semicolon), ' ' (pairs of single quotes)
特殊文字:_(アンダースコア)、 /(スラッシュ)、$(ドル記号)、(ハッシュ記号)
識別子を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コンテキスト内の識別子と一致する名前が区別されません。
一致するものが見つからない場合、UndeclaredIdentifierエラーが返されます。