首批通过分布式安全可靠测评,为关键业务系统打造
支持的数据类型
更新时间:2026-05-06 18:01:31
EOCB 支持 Oracle 内部数据类型和 C 语言的外部数据类型。
内部数据类型
ECOB 中内部类型指的是在 OceanBase 数据库中可使用的数据类型,当前 ECOB 支持的内部数据类型如下表所示:
| 内部数据类型 | 说明 |
|---|---|
| CHAR | 固定长度字符串。其最大长度为 2000。 |
| VARCHAR2 | 可变长度字符串。其最大长度为 32767。 |
| NUMBER | 数值类型。精度取值范围为 1~38,位数取值范围为 [-84,127]。 |
| INT | 整型数值,其最大值为 38 位。 |
| BINARY_FLOAT | 32 位浮点数。 最小值为 1.17549E-38F; 最大值为 3.40282E+38F。 |
| BINARY_DOUBLE | 64 位浮点数。最小值为 2.22507485850720E-308,最大值为 1.79769313486231E+308。 |
| DATE | 日期类型。格式为 YYYY-MM-DD HH:MI:SS。 |
| TIMESTAMP | 时间类型。格式为 YYYY-MM-DD HH:MI:SS [.FFFFFFFFF]。 |
说明
数据类型 TIMESTAMP 目前只支持插入数据,暂不支持 TIMESTAMP 数据往 C 语言的变量里进行存取操作。
外部数据类型
ECOB 中外部类型被用于指定宿主变量存储数据的类型(C 语言中的数据类型),当输入数据到数据库时,ECOB 会将输入的宿主变量的外部类型和内部数据类型进行转换。当输出数据到外部程序时,ECOB 会将数据库中表的内部数据类型和输出的宿主外部数据类型进行转换。
当前 ECOB 支持了整型、浮点和字符等宿主变量数据类型的转换。ECOB 也支持复杂类型 STRUCT。
注意
对于 STRUCT,里面成员可以是所有支持的类型的组合,但是不建议 STRUCT 里面层层嵌套 STRUCT 类型。
下述表格展示了 ECOB 支持的外部类型,并展示了和宿主变量数据类型之间的对应关系:
| 外部数据类型 | 说明 | 宿主变量数据类型 |
|---|---|---|
| ECOBt_char | 用于存储定长字符串。 | char、char *、char [] |
| ECOBt_unsigned_char | 用于存储定长字符串。 | unsigned char |
| ECOBt_short | 用于存储有符号短整型。 | int、int *、 int[] |
| ECOBt_unsigned_short | 用于存储无符号短整型。 | unsigned int |
| ECOBt_int | 用于存储有符号整型。 | short 、short * 、short[] |
| ECOBt_unsigned_int | 用于存储无符号整型。 | unsigned short |
| ECOBt_long | 用于存储有符号长整型。 | long、long * 、long[] |
| ECOBt_unsigned_long | 用于存储无符号长整型。 | unsigned long |
| ECOBt_long_long | 用于存储有符号长长整型。 | long long、long long * 、long long[] |
| ECOBt_unsigned_long_long | 用于存储无符号长长整型。 | unsigned long long |
| ECOBt_float | 用于存储 32 位浮点数。 | float 、float * 、float[] |
| ECOBt_double | 用于存储 64 位浮点数。 | double、double *、double[] |
| ECOBt_varchar | 用于存储变长字符串。 | varchar varchar * varchar[] |
| ECOBt_struct | 用于存储结构体。 | struct 、struct *、struct[] |