Mainframe Connector 資料類型

本頁面說明 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 (已簽署) binary
format_date
二進位欄位的預設值,或 binary.signedness 設為 SIGNED 時。
依精確度劃分的位元組大小 (p):
  • p ≤ 4:2 個位元組
  • 5 ≤ p ≤ 9:4 個位元組
  • 10 ≤ p ≤ 18:8 個位元組
(也支援使用 binary 修飾符的 1、2、4 或 8 位元組欄位。)
Long bigint INT64
BINARY、COMP、COMPUTATIONAL、COMP-4、COMP-5 (無正負號) binary
format_date
套用 binary 修飾符,並將 signedness 設為 UNSIGNED。 Long bigint INT64
DISPLAY (或任何大小的欄位,以原始位元組表示) bytes 任何套用 bytes 欄位修飾符 (透過 field_overrides、field_suffixes 或 defaults) 的靜態位元組大小欄位。 Bytes binary BYTES
DISPLAY (或整數 Long 欄位) 做為日期 format_date
string
字串欄位 (DISPLAY、DISPLAY-1、NATIONAL、UTF-8) 或整數欄位 (Long 邏輯類型),具有 format_date 修飾符和符合欄位字元長度 (字串) 或數字精確度 (整數) 的格式項目。 Date date DATE
DISPLAY (字串) 做為時間戳記 format_timestamp
string
包含 format_timestamp 修飾符和格式項目的字串欄位,與欄位的位元組大小相符。 Timestamp timestamp TIMESTAMP
DISPLAY (*) (英數字元) string USAGE DISPLAY (或省略 USAGE),搭配英數字元、英文字母或英數字元編輯的 PICTURE (X、A、B、0、/)。
  • 如果省略 USAGE,且 PIC 為 N,則視為 NATIONAL。
  • 如果省略 USAGE,且 PIC 為 U,則視為 UTF-8。
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 修飾符的群組欄位,包含兩個子欄位:
  1. 邏輯類型為 Long 的長度子欄位 (例如 BINARY、ZONED 或 PACKED-DECIMAL,搭配 precision ≤ 18 和 scale = 0)。
  2. 未經修改的字串子欄位 (DISPLAY、DISPLAY-1、NATIONAL 或 UTF-8)。
String string STRING
PACKED-DECIMAL
(COMP-3,COMPUTATIONAL-3)
packed_decimal
format_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)
  • INT64 (p = 19)
  • NUMERIC (20 ≤ p ≤ 38)
  • BIGNUMERIC (p > 38)
PACKED-DECIMAL
(COMP-3,COMPUTATIONAL-3)
packed_decimal 19 ≤ precision ≤ 38 和 scale > 0
(或 packed_decimal.logical_type 設為 BIG_DECIMAL)
BigDecimal decimal(p, s)
  • NUMERIC (p ≤ 38 和 s ≤ 9)
  • BIGNUMERIC (p > 38 或 s > 9)
ZONED
(DISPLAY,PICTURE 為數字)
zoned_decimal
format_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)
  • INT64 (p = 19)
  • NUMERIC (20 ≤ p ≤ 38)
  • BIGNUMERIC (p > 38)
ZONED
(DISPLAY,PICTURE 為數字)
zoned_decimal 19 ≤ precision ≤ 38 和 scale > 0
(或 zoned_decimal.logical_type 設為 BIG_DECIMAL)
BigDecimal decimal(p, s)
  • NUMERIC (p ≤ 38 和 s ≤ 9)
  • BIGNUMERIC (p > 38 或 s > 9)