本頁面說明 Mainframe Connector 支援的所有資料類型。
通用欄位修飾符
所有大小的基本 COBOL 欄位都支援下列通用轉碼器欄位修飾符 (使用 defaults、field_suffixes 或 field_overrides 設定):
null_if:根據指標欄位的值,解碼或編碼NULL。null_if_empty:如果欄位中的所有位元組都是0x00(低值),則解碼為NULL;將NULL編碼為0x00位元組。decode_as_null:如果所有位元組都符合設定的hex_bytes值 (例如 EBCDIC 空格的"40"、低值的"00"或高值的"FF"),或解碼值符合values清單,則解碼為NULL。encode_null_as:將NULL編碼為重複的hex_byte或特定預設value。null_if_invalid:將無效的欄位資料解碼為NULL,而不是將遭拒的記錄傳送至溢出資料集。bytes:覆寫欄位,讀取及寫入原始BYTES,不進行字元解碼。filler:從解碼輸出結構定義中排除欄位,並在編碼期間填入hex_byte(預設為0x40)。chain:依序套用多個欄位修飾符。
COBOL 資料類型對應表
| COBOL 用途類型 | 其他支援的欄位修飾符 | 抄本或修飾符條件 | 邏輯類型 | ORC 類型 | BigQuery 資料類型 |
|---|---|---|---|---|---|
COMP-1,COMP-2( COMPUTATIONAL-1,COMPUTATIONAL-2)
|
hfp |
COMP-1 (4 位元組單精度) 或 COMP-2 (8 位元組雙精度),不含 PICTURE 子句,或任何含有 hfp 修飾符的 4 或 8 位元組欄位。 |
Double |
double |
FLOAT64 |
BINARY、COMP、COMPUTATIONAL、COMP-4、COMP-5 (已簽署) |
binaryformat_date
|
二進位欄位的預設值,或 binary.signedness 設為 SIGNED 時。依精確度劃分的位元組大小 ( p):
binary 修飾符的 1、2、4 或 8 位元組欄位。)
|
Long |
bigint |
INT64 |
BINARY、COMP、COMPUTATIONAL、COMP-4、COMP-5 (無正負號) |
binaryformat_date
|
套用 binary 修飾符,並將 signedness 設為 UNSIGNED。 |
Long |
bigint |
INT64 |
DISPLAY (或任何大小的欄位,以原始位元組表示) |
bytes |
任何套用 bytes 欄位修飾符 (透過 field_overrides、field_suffixes 或 defaults) 的靜態位元組大小欄位。 |
Bytes |
binary |
BYTES |
DISPLAY (或整數 Long 欄位) 做為日期 |
format_datestring
|
字串欄位 (DISPLAY、DISPLAY-1、NATIONAL、UTF-8) 或整數欄位 (Long 邏輯類型),具有 format_date 修飾符和符合欄位字元長度 (字串) 或數字精確度 (整數) 的格式項目。 |
Date |
date |
DATE |
DISPLAY (字串) 做為時間戳記 |
format_timestampstring
|
包含 format_timestamp 修飾符和格式項目的字串欄位,與欄位的位元組大小相符。 |
Timestamp |
timestamp |
TIMESTAMP |
DISPLAY (*) (英數字元) |
string |
USAGE DISPLAY (或省略 USAGE),搭配英數字元、英文字母或英數字元編輯的 PICTURE (X、A、B、0、/)。
|
String |
string |
STRING |
DISPLAY-1 (DBCS) |
string |
USAGE DISPLAY-1 搭配 PIC G (可選用 B) 或 PIC N。每個符號占用 2 個位元組。 |
String |
string |
STRING |
NATIONAL |
string |
USAGE NATIONAL 搭配 PIC N (或省略 USAGE 搭配 PIC N)。每個符號占用 2 個位元組。 |
String |
string |
STRING |
UTF-8 |
string |
USAGE UTF-8 搭配 PIC U (或省略 USAGE 搭配 PIC U)。 |
String |
string |
STRING |
DISPLAY (GROUP) (可變長度字串) |
varlen |
含有 varlen 修飾符的群組欄位,包含兩個子欄位:
|
String |
string |
STRING |
PACKED-DECIMAL( COMP-3,COMPUTATIONAL-3)
|
packed_decimalformat_date (Long)
|
precision ≤ 18 和 scale = 0(或 packed_decimal.logical_type 設為 LONG)
|
Long |
bigint |
INT64 |
PACKED-DECIMAL( COMP-3,COMPUTATIONAL-3)
|
packed_decimal |
precision ≤ 18 和 scale > 0(或 packed_decimal.logical_type 設為 DECIMAL64)
|
Decimal64 |
decimal(p, s) |
NUMERIC |
PACKED-DECIMAL( COMP-3,COMPUTATIONAL-3)
|
packed_decimal |
19 ≤ precision ≤ 38 和 scale = 0(或 packed_decimal.logical_type 設為 BIG_INTEGER)
|
BigInteger |
decimal(38, 0) |
|
PACKED-DECIMAL( COMP-3,COMPUTATIONAL-3)
|
packed_decimal |
19 ≤ precision ≤ 38 和 scale > 0(或 packed_decimal.logical_type 設為 BIG_DECIMAL)
|
BigDecimal |
decimal(p, s) |
|
ZONED( DISPLAY,PICTURE 為數字)
|
zoned_decimalformat_date
|
precision ≤ 18 和 scale = 0(或 zoned_decimal.logical_type 設為 LONG)
|
Long |
bigint |
INT64 |
ZONED( DISPLAY,PICTURE 為數字)
|
zoned_decimal |
precision ≤ 18 和 scale > 0(或 zoned_decimal.logical_type 設為 DECIMAL64)
|
Decimal64 |
decimal(p, s) |
NUMERIC |
ZONED( DISPLAY,PICTURE 為數字)
|
zoned_decimal |
19 ≤ precision ≤ 38 和 scale = 0(或 zoned_decimal.logical_type 設為 BIG_INTEGER)
|
BigInteger |
decimal(38, 0) |
|
ZONED( DISPLAY,PICTURE 為數字)
|
zoned_decimal |
19 ≤ precision ≤ 38 和 scale > 0(或 zoned_decimal.logical_type 設為 BIG_DECIMAL)
|
BigDecimal |
decimal(p, s) |
|