17.10 - 利便性機能 - Parallel Transporter

Teradata® Parallel Transporter ユーザー ガイド

Product
Parallel Transporter
Release Number
17.10
Release Date
2021年6月
Content Type
ユーザー ガイド
Publication ID
B035-2445-061K-JPN
Language
日本語 (日本)

場合によっては、VARDATEの形式変更機能は、提供されるFORMATIN文字列に明示的に一致しないDateTimeデータを受け入れます。 こうしたケースはまれですが、VARDATEの形式変更機能の利便性を拡張するために実装されました。

2桁の月、曜日、時間、秒、分の形式化文字がFORMATIN文字列に入力され、基になるデータ内の一致する値が1桁である場合、データがFORMATOUT文字列で指定されている形式に変換される前にゼロが1桁の値の先頭に付けられます。 完全な曜日名形式化文字がFORMATIN文字列に入力され、基になるデータ内の一致する値が省略された曜日名である場合、省略された曜日名が受け入れられます。 同様に、省略された曜日名形式化文字がFORMATIN文字列に入力され、基になるデータ内の一致する値が完全な曜日名である場合、その完全な曜日名が受け入れられます。

VARDATE変換

VARDATE変換は、FORMATINに指定された入力文字列の終了時にデータが欠落している場合に、FORMATINで指定された以下の書式設定文字で柔軟に実行することができ、デフォルト設定されています。

書式設定文字列 説明 対応するデータが欠落している場合の結果
YY 2桁の年数 "00"は処理されて2000になる
HH 2桁の時間数 "00"は処理される
MI 2桁の分数 "00"は処理される
SS 2桁の秒数 "00"は処理される
SS.S (N) 2桁の秒の後に小数秒が続く "00.000000"は処理される
T 12時間形式の使用 "am"は処理される
Z タイム ゾーン "+00.00"は処理される

入力文字列の先頭または途中部分でVARDATEデータが欠落している場合でも、入力文字列のどの部分が実際に欠落しているかが不明確な場合があるため、エラーが発生します。また、VARDATE入力文字列がまったく存在しない場合は、データが欠落しているとは見なされず、NULL列と見なされます(例: 以下の例の最後の行)。

例えば、次のスキーマ定義について考えます。

DEFINE SCHEMA PRODUCT_TABLE_SCHEMA
DESCRIPTION 'PRODUCT INFORMATION SCHEMA'
(
COL1 VARCHAR(10),
COL2 VARDATE(30) FORMATIN('YYYY/MMM/DDBHH/MI/SS.S(6)') FORMATOUT('YYYY-MM-DDBHH:MI:SS.S(6)'),
COL3 VARCHAR(10)
);

Now consider the following delimited data:

aaa,2001/Jan/01 01/01/01.123456,AAA
bbb,2002/Feb/02 02/02/02,BBB
ccc,2003/Mar/03 03/03/,CCC
ddd,2004/Apr/04 04/04,DDD
eee,2005/May/05 05/,EEE
fff,2006/Jun/06 06,FFF
ggg,2007/Jul/07 ,GGG
hhh,2008/Aug/08,HHH
iii,,III

このデータをテーブルに挿入すると、次のようになります。

COL001     COL002                     COL003
---------- -------------------------- ----------
aaa        2001-01-01 01:01:01.123456 AAA
bbb        2002-02-02 02:02:02.000000 BBB
ccc        2003-03-03 03:03:00.000000 CCC
ddd        2004-04-04 04:04:00.000000 DDD
eee        2005-05-05 05:00:00.000000 EEE
fff        2006-06-06 06:00:00.000000 FFF
ggg        2007-07-07 00:00:00.000000 GGG
hhh        2008-08-08 00:00:00.000000 HHH
iii        ?                          III