例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オプションを使用していないことに注意してください。