SQLコマンドは、コマンドのコンテキスト内でテーブルとカラムを一意に識別する識別子の形で、テーブルとカラムへの参照を含んでいます。すべてのクエリは仮想データベース(VDB)のコンテキストで処理されます。情報は複数のソースにまたがる可能性があるため、テーブルと列は競合を避けるために何らかの方法でスコープを設定する必要があります。このスコーピングは、各データソースまたはビューのセットの情報を含むSchemaによって提供されます。

完全修飾されたテーブル名とカラム名は、識別子をピリオドで区切った以下の形式です:

  • TABLE: <schema_name>.<table_spec>
  • COLUMN: <schema_name>.<table_spec>.<column_name>

Syntax Rules

  • BEGINERは英数字とアンダースコア(_)で構成され、英字で始まる必要があります。識別子には任意のUnicode 文字を使用できます;
  • 二重引用符で囲まれた識別子には任意の文字を使用できます。ダブルクォート文字は、"some "" id "のように、追加のダブルクォートでエスケープすることができます;
  • CData Virtuality Server では、テーブルをドット区切りで指定することができます;

    When a table specification contains a dot, resolving will allow for the match of a partial name against any number of the end segments in the name, e.g. a table with the fully-qualified name vdbname."sourcescema.sourcetable" will match the partial name source table.

  • カラム、Schema、エイリアスの識別子にはドットを含めることはできません;
  • CData Virtuality Server では、引用符で囲んだ場合でも識別子の大文字と小文字は区別されません。 

以下に有効な完全修飾テーブル識別子の例を示します:

  • MySchema.Portfolios
  • "MySchema.Portfolios"
  • MySchema.MyCatalog.dbo.Authors

そして、以下に有効な完全修飾カラム識別子の例を示します:

  • MySchema.Portfolios.portfolioID
  • "MySchema.Portfolios"."portfolioID"
  • MySchema.MyCatalog.dbo.Authors.lastName

完全修飾識別子は常にSQLコマンドで使用できます。コマンドの文脈で曖昧性のない名前である限り、部分的または非限定的な形式を使用することもできます。同じクエリに異なる形式のクオリフィケーションを混在させることができます。

また、CData Virtuality Server には、構文規則に制限がある内部識別子もあります:

制限は以下のとおり:

  • Identifiers は、英数字またはアンダースコア (_) 文字で構成されます。ダッシュとドットは、ユーザとロールの識別子にのみ使用できます;
  • 二重引用符で囲まれた識別子は禁止されています。