エレメント名 (識別子)¶
Virtual DataPort のすべてのエレメント (データソース、ビュー、Web サービス、データベースなど) には名前があります。識別子は、VQL ステートメントでのエレメント名の表現方法です。ステートメントでは、オブジェクトの名前を 引用符で囲まれた識別子 または 引用符で囲まれていない識別子 で表します。
引用符で囲まれた識別子の先頭と末尾は、二重引用符 (
"
) です (例:"Customer 360"
)。この識別子には、マルチバイト文字を含め、すべての文字が使用できます。引用符で囲まれていない識別子は、二重引用符で囲まれていません。引用符で囲まれていない識別子は、以下のルールに従います。
先頭文字は、「a」~「z」または「A」~「Z」である必要があります。
後続の文字は、「a」~「z」、「A」~「Z」、数字、またはアンダースコア (「_」) のいずれかである必要があります。
予約語 は、引用符で囲まれていない識別子として使用できません。予約語を引用符で囲まれた識別子として使用することはできますが、他のアプリケーションからのクエリの実行で問題が発生することを避けるために、使用しないことを推奨します。
以下の点に留意してください。
識別子は最長で 100 文字です。
ビューの名前の先頭に、アンダースコア (
_
) は使用できません。引用符で囲まれていない識別子は、小文字で保存されます。
引用符で囲まれていない識別子は、大文字と小文字が区別されません。つまり、ビュー
CREATE VIEW CUSTOMER_360 AS...
を作成した場合、Virtual DataPort では「customer_360」として保存されます。したがって、実行時に、以下のクエリは同等です。
SELECT * FROM CUSTOMER_360;
SELECT * FROM customer_360;
オブジェクトを作成する際、すべての文字が小文字で、先頭文字が「a」~「z」で、後続の文字が「a」~「z」、数字、またはアンダースコアの場合、引用符で囲まれていない識別子として保存されます。これは、名前を二重引用符で囲んだ場合にも当てはまります。たとえば、次のオブジェクトを作成した場合、
CREATE VIEW "customer360" AS...
これは
customer360
として保存され、このビューを参照するのに二重引用符は不要です。つまり、次のように実行できます。SELECT * FROM customer360;
1 つのデータベース内に、名前が同じエレメントを複数作成することはできません。この制約では大文字と小文字は区別されません。つまり、名前が「CUSTOMER360」のビューと、名前が「Customer360」のビューを作成することはできません。
たとえば、名前が同じビューを 2 つ作成することはできませんが、DF データソースと同じ名前の JDBC データソースを作成することは可能です。これは、異なるタイプのエレメントと見なされるためです。
引用符で囲まれた識別子を含むエレメントを作成した場合、このエレメントをクエリで参照するときには、常に二重引用符で名前を囲む必要があります。以下に例を示します。
SELECT * FROM "Incident";
Server administration の Identifiers charset で構成できるオプションは、Administration Tool または Design Studio でビューを作成/編集する際に使用できる文字しか制御せず、サーバーの動作には 影響しません 。
以下については、管理ガイドの「 ID の文字セット 」を参照してください。
2 つの使用可能な文字セット、「Unicode」と「Restricted」の相違点
文字セットの変更がユーザーに及ぼす影響
Unicode のサポートを有効または無効にする方法
バッククォートの使用¶
古いバージョンの Denodo (Denodo 5.5 以前) では、引用符で囲まれた識別子に使用する文字は、二重引用符 ("
) ではなく、バッククォート (`
) でした。
下位互換性を維持するため、バッククォートの使用は引き続きサポートされていますが、非推奨です。Denodo の今後のメジャーバージョンでサポートが廃止される可能性があるため、使用しないことをお勧めします。
たとえば、以下のステートメントは同等です。
CREATE VIEW "view with spaces in the name" ...
CREATE VIEW `view with spaces in the name` ...