16.20 - グラフィック リテラル - Teradata Vantage NewSQL Engine

Teradata Vantage™ データ タイプおよびリテラル

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1143-162K-JPN

目的

式の中でグラフィック文字列リテラル値を宣言します。

構文



G
文字列はグラフィック データです。
'
グラフィック文字列用の区切り記号。
各単一引用符は1バイト文字です。
<ABC>
シフト アウト/シフト イン文字で囲まれた有効なKanjiEBCDICマルチバイト文字の文字列。

ANSI準拠

グラフィック リテラルは、ANSI SQL:2011規格に対するTeradata拡張機能です。

ルール

グラフィック リテラルの使用には、以下のルールが適用されます。
  • Japanese character siteに、グラフィック文字列リテラルのG'string'の構文を使用できるのは、セッションでKanjiEBCDIC文字セットが有効である場合だけです。これは_Graphic 'string'と同等です。
  • _Graphic 'string'形式は、どのセッション文字セットからでも使用でき、グラフィック レパートリーに属する必要があるリテラルを指定する場合に推奨されている形式です。
  • 他の文字セットの場合、グラフィック文字列の16進数表記を使用できます(16進数バイト リテラルを参照)。
  • リテラルは、シフト アウト/シフト イン文字で囲む必要がある(通常のKanjiEBCDICエンコーディングで必要とされるため)。
  • 最大長は、論理文字数(2バイト文字の数)として15500文字です。

    Shift-Out/Shift-In文字はバイト カウントに含まれず、グラフィック リテラルの一部として格納されnot

  • 内容は、有効なグラフィック データ(現行セッションで有効なKanjiEBCDIC文字セットのもとで出力可能なマルチバイト文字)であることが必要。
  • 内部表現は、偶数バイトであることが必要。

文字列リテラルのケース指定

グラフィック文字列リテラルを含め、文字列リテラルは、以下の場所で使用できます。
  • SQLクエリーのテキスト
  • ビューおよびマクロ定義のテキスト
  • CHECK制約のテキスト

これらのいずれの場合でも、これらのリテラルを使用するクエリーを実行すると、リテラルが解析され、その時点で、それらにケース指定の属性が割り当てられます。

セッションのモード 文字列リテラルの大文字小文字の区別のデフォルト
ANSI CASESPECIFIC。
Teradata NOT CASESPECIFIC。

CHARACTERまたはVARCHAR CHARACTER SET GRAPHICタイプの文字データは例外で、常にCASESPECIFICです。

このため、WHERE制約のあるビューと、CHECKでは、文字列リテラルが組み込まれた場合、それらを実行するユーザーのセッションがANSIとTeradataのどちらのモードであるかによって、異なる方法で比較が行なわれることになります。

デフォルトの大文字小文字指定属性を上書きするには、CASESPECIFIC句かNOT CASESPECIFIC句を文字列リテラルに適用します。

existingビューのうちWHERE制約のあるものについては、そのビューに変更を加えて明示的に比較のためのケース指定を制御する必要があります。

セッションで有効な照合によって、文字列の比較が異なることもあります。注意してください。

関連情報

CHECKの使用法に関する説明は、<Teradata Vantage™ SQLデータ定義言語-構文規則および例、B035-1144>の「ALTER TABLE」および「CREATE TABLE」を参照してください。

<Teradata Vantage™ SQL関数、式、および述部、B035-1145>の「大文字小文字指定」も参照してください。

文字列の比較の際に、大文字小文字の指定を明示的に制御する必要があります。大文字小文字の指定を明示的に制御する方法については、このボリュームの文字データ型とCLOBデータ型の「CASESPECIFIC句」および「UPPERCASE句」を参照してください。