17.00 - 17.05 - ビュー定義と文字セット - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Release Date
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-170K-JPN
Language
日本語 (日本)

ビューには、明示的に[VAR]CHARACTER(n) [CHARACTER SET …]句を含めることができます。server character set(CHARACTER SET LATINなど)が指定されない場合には、ビュー定義は[VAR]CHARACTER(n)句を展開して、その指定を完了します。

展開は、以下のルールに従って行なわれます。

  • この句がビュー内の式に適用される場合には、式がCHARACTERタイプであれば、式のserver character setが使用されます。
  • 適用されない場合、server character setは、ビューの作成者/変更者のデフォルトの文字セットに設定されます。

    もしビューの作成ユーザーのデフォルト セッション文字セットが使用されないとすると、ユーザーのデフォルト セッション文字セットがそれぞれの個別ユーザーに依存することになり、デフォルト セッション文字セットが異なる2人のユーザーがそのビューから異なる結果を得る可能性があります。それで、ビュー作成ユーザーのデフォルト セッション文字セットが使用されることになっています。

    たとえば、CREATE USERのデフォルトの文字セットがKanji1である場合、ビューは、以下に示すように展開されます。

    元のビュー定義は、以下のとおりです。

        CREATE TABLE table_1 (
          cu CHARACTER(5) CHARACTER SET  UNICODE);
           
        CREATE VIEW view_1 AS
         SELECT cu (CHARACTER(6))
         FROM table_1;

    展開されたビュー定義は、以下のとおりです。

        CREATE VIEW v1 AS
         SELECT cu (CHARACTER(6), CHARACTER SET  UNICODE)
         FROM table_1;

    同様に、次のビュー定義が以下に示すように展開されます。

    元のビュー定義は、以下のとおりです。

        CREATE VIEW v2 AS
         SELECT 123 (CHARACTER(12));

    展開されたビュー定義は、以下のとおりです。

        CREATE VIEW v2 AS
         SELECT 123 (CHARACTER(12), CHARACTER SET KANJI1);