暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Database Class 8:OceanBase 数据库OBCI支持哪些数据类型?

SQL新手 2023-04-04
953

OBCI 支持 OceanBase Oracle 模式下的内部数据类型和 C 语言中 <oci.h> 定义的外部类型(兼容Oracle OCI)。

内部类型

内部类型指的是 OceanBase 数据库 Oracle 模式下可使用的数据类型。

OBCI 支持的常见内部类型如下表所示:

名字描述限制
char固定长度字符串最大长度 2000
varchar2可变长度字符串最大长度 32767
number数值类型精度取值范围 1 ~ 38 位数取值范围 -84 ~ 127
int整形数值最大值 38 位
binary_float32 位浮点数最小值:1.17549E-38F 最大值:3.40282E+38F
binary_double64 位浮点数最小值:2.22507485850720E-308 最大值:1.79769313486231E+308
date日期类型YYYY-MM-DD HH:MI:SS
timestamp时间类型YYYY-MM-DD HH:MI:SS [.FFFFFFFFF]

外部类型

外部类型是用于指定宿主变量存储数据的类型,当输入数据到数据库时,OBCI 会将输入的宿主变量的外部类型和内部数据类型进行转换。当输出数据到外部程序时,OBCI 会将数据库中表的内部数据类型和输出的宿主外部数据类型进行转换。

OBCI 支持的常用外部类型及其对应关系如下表所示:

外部类型编码宿主变量数据类型OBCI 类型
VARCHAR21char[n]SQLT_CHR
NUMBER2unsigned char[21]SQLT_NUM
8-bit signed INTEGER3signed charSQLT_INT
16-bit signed INTEGER3signed short, signed intSQLT_INT
32-bit signed INTEGER3signed int, signed longSQLT_INT
FLOAT4float, doubleSQLT_FLT
LONG8char[n]SQLT_LNG
NULL-terminated STRING5char[n+1]SQLT_STR
LONG8char[n]SQLT_LNG
VARCHAR9char[n+sizeof(short integer)] SQLT_VCSVARCHAR
DATE12unsigned char[n]SQLT_BIN
RAW23char[7]SQLT_DAT
CHAR96char[n]SQLT_AFC
REF110OCIRefSQLT_REF
Character LOB descriptor112OCILobLocator (see note 2)SQLT_CLOB
Binary LOB descriptor113OCILobLocator (see note 2)SQLT_BLOB
ANSI DATE descriptor184OCIDateTime *SQLT_DATE
TIMESTAMP descriptor187OCIDateTime *SQLT_TIMESTAMP
TIMESTAMP WITH TIME ZONEdescriptor188OCIDateTime *SQLT_TIMESTAMP_TZ
TIMESTAMP WITH LOCAL TIME ZONEdescriptor232OCIDateTime *SQLT_TIMESTAMP_LTZ
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论