フィールドのデータ型
フィールドにおける基本データ型は以下の通りです。
| Integer | -9223372036854775808以上,9223372036854775807以下の整数 |
|---|---|
| Decimal | 無限精度の数値 |
| String | 最大2147483647文字までの文字列 |
| Binary | 最大2147483647バイトまでのバイト列データ |
| Double | -1.79769313486231570e+308から+1.79769313486231570e+308までの浮動小数点 |
| DateTime | 西暦で、単位は年月日時分秒1/1000秒まで 例:1970年01月01日00:00:00 |
| Boolean | 真(true)もしくは偽(false) |
※FixedLengthストリームにおいてはPackedDecimal型、ZonedDecimal型が使用できますが、これは読み込み時に仮想小数点の解決のためにゾーン・パック形式が評価されるだけで内部的にはDecimal型になります。
※ParameterListストリームではStringの配列が使用できます。
DateTime型の書式
フローサービス標準の日付書式はISO8601で規定されている「yyyy-MM-dd'T'HH:mm:ss'.'SSS z」形式です。日付型を文字列として書き出す場合はこの形式が使用されます。zはタイムゾーンを表し、’JST’、’+0900’、’GMT-01:00’などのように表記します。タイムゾーンが省略されるとローカルタイムとして処理されます。また、以下の形式の日付文字列も読み込むことができます。プロパティなどにDateTime値を文字列として設定する場合は下記の形式のいずれかを使用してください。
yyyy-MM-dd'T'HH:mm:ss z yyyy-MM-dd'T'HH:mm:ss'.'SSS z
また、「yyyyMMdd'T'HH:mm:ss'.'SSS」形式のときに限り、UTC指定子「Z」が直後に付加されている場合はGMTとして取り扱います。
データ型の変換
Mapperコンポーネントでのフィールドや変数への値代入では、データ型は可能な限り暗黙変換されます。変換できない値が入力された場合はエラーが発生します。
| 入力\出力 | Boolean | Integer | Decimal | Double | String | Binary※1 | DateTime |
|---|---|---|---|---|---|---|---|
| Boolean | - | ○※2 | ○※2 | ○※2 | ○※3 | ○ | × |
| Integer | ○※4 | - | ○ | ○ | ○ | ○ | ○※5 |
| Decimal | ○※4 | ○ | - | ○ | ○ | ○ | ○※5 |
| Double | ○※4 | ○※11 | ○ | - | ○ | ○ | ○※5 |
| String | ○※6 | △※9 | △※9 | △※9 | - | ○ | △※10 |
| Binary ※7 | ○ | △ | △ | △ | ○ | - | △ |
| DateTime | × | ○※5 | ○※5 | ○※5 | ○※8 | ○ | - |
○=変換可能、△=フォーマットに依存、×=変換不可
※1 Binaryへの変換は一度Stringに変換されてから、システムのエンコーディングでバイト列化されます(プラットフォーム依存性に注意してください)。
※2 True=1, False=0
※3 True="true", False="false"
※4 0=False, それ以外はTrue
※5 DateTime型は1970 年1月1日 00:00:00 GMT からのミリ秒数として数値型と相互に変換されます。
※6 大文字小文字の区別なしで"true"とマッチする場合True、それ以外はFalse
※7 Binaryからの変換は一度システムのエンコーディングでString化された後に適用されます(プラットフォーム依存性に注意してください)。
※8 フローサービス標準の日付フォーマット(yyyy-MM-dd'T'HH:mm:ss'.'sss z)
※9 十進表記のみ有効
※10 DateTime型の書式を参照
※11 値の小数点は0に近い方に丸められて失われます。
データ型に関わらずnullはすべての型に変換が可能です。 Mapperコンポーネントでフィールドに入力する際に変換に失敗した場合はエラーが発生します。