例 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL関数、式、および述部

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/djk1612415574830.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage

例1: ユーザーのデフォルトのサーバー文字セットがLATINである場合

次のテーブル定義のName列を考慮します。

   CREATE TABLE Employee
     (EmployeeID INTEGER
     ,Name       CHARACTER(30) CHARACTER SET LATIN
     ,Salary     DECIMAL(8,2));

ユーザーのデフォルト サーバー文字セットがLATINの場合、TYPEが戻すName列に関する文字列にはCHARACTER SET句が含まれていません。

   SELECT TYPE(Employee.Name);
   
   Type(Name)
   ----------
   CHAR(30)

例2: ユーザーのデフォルトのサーバー文字セットがLATINだが、Name列のサーバー文字セットがUNICODEである場合

ユーザーのデフォルト サーバー文字セットがLATINであっても、Name列のサーバー文字セットがUNICODEである場合、結果の列にはCHARACTER SET句が入ります。

   CREATE TABLE Employee
     (EmployeeID INTEGER
     ,Name VARCHAR(30) CHARACTER SET UNICODE
     ,Salary     DECIMAL(8,2));
   
   SELECT TYPE(Employee.Name);
   
   Type(Name)
   ---------------------------------
   VARCHAR(30) CHARACTER SET UNICODE

例3: Name列とSalary列の型を返す

次の文はName列とSalary列のタイプを戻します。

   SELECT TYPE(Employee.Name), TYPE(Employee.Salary);
   Type(Name)   Type(Salary)
   -----------  ------------
   VARCHAR(30)  DECIMAL(8,2) 
   

例4: TYPEを使用して、2つの列のデータ型を要求する

TYPEを使って、それぞれGRAPHICとLONG VARCHAR CHARACTER SET GRAPHICとして定義されている2つの列のデータ型を要求する場合、結果は以下のようになります。

  TYPE(GColName)                 TYPE(LVGColName)
  -----------------------------  ------------------------------------
  CHAR(4) CHARACTER SET GRAPHIC  VARCHAR(32000) CHARACTER SET GRAPHIC

LONG VARCHAR CHARACTER SET GRAPHIC列の場合、返される長さは最大長の32000です。

例5: TYPE関数の使用

以下のTYPE関数について考えてみましょう。

   SELECT TYPE(SUBSTR(Employee.Name,3,2));

SUBSTRの結果タイプはセッション モードに応じて異なります。

セッションがANSIモードに設定されている場合、戻される結果は次のようになります。

   Type(Substr(Name,3,2))
   ----------------------
   VARCHAR(30)

セッションがTeradataモードに設定されている場合、戻される結果は次のようになります。

   Type(Substr(Name,3,2))
   ----------------------
   VARCHAR(2)

例6: BLOB列へのTYPE関数の適用

次のテーブル定義を考えます。

   CREATE TABLE images
     (imageid INTEGER
     ,imagedesc VA
RCHAR(50)
     ,image BLOB(2K))
   UNIQUE PRIMARY INDEX (imageid);

次の文は、TYPE関数をBLOB列に適用します。

   SELECT TYPE(images.image) FROM images;

結果は以下のようになります。

   Type(image)
   -----------
   BLOB(2048)

結果が通常の整数長になることと、CREATE TABLE文の中でBLOB列を定義するために使用したKオプションを使用していないことに注意してください。