SDFファイルは、Vantageによる数値、日付、時刻、および通貨の書式設定方法を定義したテキスト ファイルです。この書式設定文字列は、SQL FORMAT出力句で使用される特殊なフォーマッティング文字と組み合わせて使用されます。
Vantageには、デフォルトの出力書式設定の表示編集可能なテキスト バージョンを含むデフォルトのSDFファイルが含まれています。デフォルトのSDFファイルは、/usr/tdbms/etcにあります。
- 曜日名
- 月の名前
- 午前と午後の表現
- 数値および通貨の分離記号
- 数値および通貨の桁まとめのルール
- 通貨記号
- データ型に対するデフォルト表示形式
- BYTEINT
- SMALLINT
- BIGINT
- INTEGER
- NUMERIC (DECIMALを含む)
- REAL (DOUBLE PRECISIONおよびFLOATを含む)
- DATE
- TIMEおよびTIME WITH TIME ZONE
- TIMESTAMPおよびTIMESTAMP WITH TIME ZONE
- NUMBER
SDFファイルは、サーバーで使用されるタイムゾーンを識別するタイムゾーン文字列を指定して、夏時間(DST)を取り入れるタイムゾーンに対しDSTの開始時と終了時に対しルールを指定することもできます。
SDFファイルの書式設定文字列で許可される書式設定文字は、上記にリストされているデータ型に対してSQL FORMATで許可される書式設定文字と同じです。SQLのCREATE TABLE、ALTER TABLE、またはSELECT文でFORMAT出力句を使用することにより、SDFファイル内のデータ型に対するデフォルト表示形式をオーバーライドすることができます。
- SDF引用符付き文字列の中の文字は、印刷可能な7ビットASCII文字(U+0020、U+0021、およびU+0023からU+007Eまで)に限定されます。SDF引用符付き文字列内で引用符自体(U+0022)を使用することはできません。
- 円記号(\)(U+005C)は、その文字自体を表わすものではなく、U+009Fより上のUnicode文字を指定する際に使用することができます。\uXXXXのシーケンスは、それに対応するUnicode文字U+ XXXXを指定するものです(XXXXはUnicode文字の16進値)。
形式は、<Teradata Vantage™ - データ タイプおよびリテラル、B035-1143>に示されている有効な形式に限られます。
例えば、SDFファイル内の通貨文字列の値を、ご自分の地域に固有の通貨記号に設定することができます。SQL SELECT文で金額情報を表示するときに通貨記号を組み込むためには、FORMAT出力句にLの書式設定文字を使用します。SQL出力書式設定句の詳細については、<Teradata Vantage™ - データ タイプおよびリテラル、B035-1143>を参照してください。
この他、SDFファイルを使用してタイムゾーン文字列を指定することも可能です。タイムゾーン文字列を指定することで、Vantageはサマー タイムを使用するロケールのシステム時刻を自動的に調整できるようになります。
SDF構成要素
SDFファイルは、各エントリが1つの種類のデータの出力書式化を指定する、またはタイムゾーン文字列を指定するSDF要素である単純な形式を使用します。SDF要素の一般的な形式は次のとおりです。
KEYWORD {value_list}
value_listは二重引用符文字で区切られ、セミコロンで区切られた1つ以上の値です。
特に明記しない限り、キーワードは大文字と小文字を区別しませんが、値は区別します。SDF書式設定文字列は、データのタイプによって構成要素がさらに制限されているのでない限り、7ビットASCIIの印刷可能文字から成ります。範囲外の文字については、\uというUnicodeの16進表記を使用します。SDFには、//で始まる1行のコメントを含めることができます。
次のテーブルでは、個々のSDF要素について説明します。
| SDF要素キーワード | 値の説明 |
|---|---|
| ShortDays | 母国語での7つの曜日の略語です。 これらの名前は長さが異なることがあります。このキーワードには7個の値を入力する必要があります。 例: ShortDays {"Sun";"Mon";"Tue";"Wed";"Thu";
"Fri";"Sat"}
|
| LongDays | 母国語での7つの曜日のフルネームです。 この名前の順序は、ShortDaysの名前の順序と一致している必要があります。これらの名前は長さが異なることがあります。このキーワードには7個の値を入力する必要があります。 例: LongDays {"Sunday";"Monday";"Tuesday";
"Wednesday";"Thursday";"Friday";
"Saturday"}
|
| ShortMonths | 母国語での12個の月名の略語です。 これらの名前の長さは異なる場合があります。このキーワードには12個の値を入力する必要があります。 例: ShortMonths {"Jan";"Feb";"Mar";"Apr";
"May";"Jun";"Jul";"Aug";"Sep";"Oct";"Nov";"Dec"}
|
| LongMonths | 母国語での12個の月名のフルネームです。 この名前の順序は、ShortMonthsの名前の順序と一致している必要があります。これらの名前は長さが異なることがあります。このキーワードには12個の値を入力する必要があります。 例: LongMonths {"January";"February";"March"; "April";"May";"June";"July";"August"; "September";"October";"November";
"December"}
|
| AMPM | 母国語でのAM (午前)およびPM (午後)の略語。 これらの名前は長さが異なることがあります。このキーワードには2個の値を入力する必要があります。 例: AMPM {"AM";"PM"}
|
| RadixSeparator | 非通貨文字列の整数部と小数部を分離する文字です。分離文字には、以下のものは含められません。
RadixSeparator値はGroupSeparator値と異なる必要があります。ただし、RadixSeparator値はCurrencyRadixSeparator値と同じにすることができます。 例: RadixSeparator {"."}
|
| GroupSeparator | 金額以外の文字列において、整数部の桁のグループを分離する文字です。 分離文字には、以下のものは含められません。
GroupSeparator値は、CurrencyGroupSeparator値と同じにすることができます。 例: GroupSeparator {","}
|
| GroupingRule | 金額以外の文字列において、各グループの桁数を定義する数値のグループです。 それぞれのグループのサイズは異なる場合があります。それぞれの数値は、各グループ内の桁数を指定します。最初の整数は、小数点の直前のグループのサイズを定義し、それ以降の整数は、その上の桁のグループを順次定義します。
|
| 例: GroupingRule {"3"} GroupingRule {“3”}では、123456789.00という数値は、123,456,789.00と書式設定されます。 GroupingRule {"3,2,-1"} GroupingRule {“3,2,-1”}では、123456789.00という数値は、1234,56,789.00と書式設定されます。 |
|
| Currency | ローカル通貨を表わすために使用される文字列。 通貨には、以下のものは含められません。
ドル、円、ユーロの通貨文字列の例: Currency {"$"}
Currency {"\u00A5"}
Currency {"\u20AC"}
|
| ISOCurrency | ISO 4217による大文字の3文字コードとしてのローカル通貨を表わす文字列。(その文字列がISO 4217に指定されていることを確認する必要があります。) 通貨には、以下のものは含められません。
例: ISOCurrency {"USD"}
|
| CurrencyName | 完全な綴りの通貨名としてのローカル通貨を表わす文字列。 通貨には、以下のものは含められません。
例: CurrencyName {"US Dollars"}
|
| CurrencyRadixSeparator | 金額の文字列の整数部と小数部を区切る文字。 分離文字には、以下のものは含められません。
値はCurrencyGroupSeparatorの値とは異なる必要があります。 例: CurrencyRadixSeparator {"."}
|
| CurrencyGroupSeparator | 金額の文字列の整数部の数字グループを区切る文字です。 分離文字には、以下のものは含められません。
値はCurrencyRadixSeparatorの値とは異なる必要があります。 例: CurrencyGroupSeparator {","}
|
| CurrencyGroupingRule | 金額の文字列において、各グループの桁数を定義する数値のグループです。 それぞれのグループのサイズは異なる場合があります。それぞれの数値は、各グループ内の桁数を指定します。最初の整数は、小数点の直前のグループのサイズを定義し、それ以降の整数は、その上の桁のグループを順次定義します。 例: CurrencyGroupingRule {"3"}
|
| DualCurrency | 二重通貨文字を表わす文字列。 通貨には、以下のものは含められません。
例: DualCurrency {"$"}
|
| DualISOCurrency | ISO 4217による3文字コードとしての二重通貨を表わす文字列。 通貨には、以下のものは含められません。
例: DualISOCurrency {"USD"}
|
| DualCurrencyName | 完全な綴りの通貨名としての二重通貨を表わす文字列。 通貨には、以下のものは含められません。
例: DualCurrencyName {"US Dollars"}
|
| BYTEINT | BYTEINTデータ型に適用されるデフォルト形式を表わす文字列。 例: BYTEINT {"-(3)9"}
|
| INTEGER | INTEGERデータ型に適用されるデフォルト形式を表わす文字列。 例: INTEGER {"-(10)9"}
|
| SMALLINT | SMALLINTデータ型に適用されるデフォルト形式を表わす文字列。 例: SMALLINT {"-(5)9"}
|
| BIGINT | BIGINTデータ型に適用されるデフォルト形式を表わす文字列。 例: BIGINT {"-(19)9"}
|
| NUMERIC | NUMERICおよびDECIMALデータ型に適用されるデフォルト形式を表わす文字列。 例: NUMERIC {"--(I).9(F)"}
|
| REAL | REAL、DOUBLE PRECISION、およびFLOATデータ型に適用されるデフォルト形式を表わす文字列。 例: REAL {"-9.99999999999999E-999"}
|
| DATE | DATEおよびPERIOD(DATE)データ型に適用されるデフォルト形式を表わす文字列。 例: DATE {"YY/MM/DD"}
|
| TIME | TIME、TIME WITH TIME ZONE、およびPERIOD(TIME)データ型に適用されるデフォルト形式を表わす文字列。 例: TIME {"HH:MI:SS.S(F)Z"}
|
| TIMESTAMP | TIMESTAMP、TIMESTAMP WITH TIME ZONE、およびPERIOD(TIMESTAMP)データ型に適用されるデフォルト形式を表わす文字列。 例: TIMESTAMP {"YYYY-MMDDBHH:MI:SS.S(F)Z"}
|
| TimeZoneString | TimeZoneStringは、タイムゾーンまたはGMTオフセットを表わします。 タイムゾーンのタイム オフセットを表わす文字列です。 例: {"GMT-8"; "-8"; "0"}
夏時間(DST)を使用する地域では、文字列により、暦年におけるどの時点でシステムのタイムゾーン オフセットを変更するかについてルール セットを定義できます。システムは、このコードに従ってDSTを自動的に調整します。例えば、次のようになります。 例: {"America Pacific"; "-8"; "0"; "2"; "4"; "4"; "1"; "0"; "0"; "02:00:00"; "3"; "10"; "0"; "0"; "-1"; "02:00:00"; "1987"; "2006"; "-8"; "0"; "-7"; "0"; "4"; "3"; "8"; "0"; "0"; "02:00:00"; "4"; "11"; "1"; "0"; "0"; "02:00:00";"2007"; "9999"; "-8"; "0"; "-7"; "0"}
サンプル タイムゾーン文字列のルールは、1987年から9999年までをカバーしています。1987より前の年をカバーするルールが必要な場合、サンプルを変更し、付加的なルールを追加することができます。
タイムゾーン文字列およびタイムゾーン ルールの詳細は、<Teradata Vantage™ - SQLの日付/時刻関数と式、B035-1211>を参照してください。 また、/usr/tdbms/etcファイルに入っているサンプルのタイムゾーン文字列とタイムゾーン ルールも参照してください。このファイルは、tdlocaledef_tzrules.txtにあります。 |
| NUMBER | NUMBERデータ型に適用されるデフォルト形式を表わす文字列。 例: NUMBER {"FN9"}
|