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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

ビューには、明示的に[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);