返回首页

gbase数据、南大通用产品文档:GBase8a数值类型

更新日期:2024年09月11日

GBase 8a MPP Cluster 支持数据类型包括严格的数值数据类型(TINYINT,
SMALLINT,INT,BIGINT,DECIMAL,NUMERIC),以及近似的数值数据类
型(FLOAT,DOUBLE)。
为了更有效地使用存储空间,请用户尽量使用最精确的类型。例如,如果一个整
数列被用于在1~127 之间的值,TINYINT 是最好的类型。
为了存储更大范围的数值,用户可以选择BIGINT 或DECIMAL 类型。
GBase 8a MPP Cluster 支持的数值类型,如下表所示:
表5- 4 数值类型
类型名称
最小值
最大值
占用字节数
TINYINT
-127
127
1

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
627
类型名称
最小值
最大值
占用字节数
SMALLINT
-32767
32767
2
INT(INTEGER)
-2147483647
2147483647
4
BIGINT
-92233720368
54775806
92233720368547758
06
8
FLOAT
-3.40E+38

要获得在客户机应用程序与数据库服务器之间消息的最优数目,请一起使用“优化
OPEN、FETCH、CLOSE”特性与“延迟的 PREPARE”特性。

然而,当您一起使用这两种优化特性时,请记住下列要求:
如果在语句文本中存在语法错误,
直到数据库服务器执行 FETCH,
它才返回该错误。
GBase 8s ESQL/C 不将 PREPARE、DECLARE 和 OPEN 语句发送至数据库服务器,
直到它执行 FETCH 语句为止。因此,直到数据库服务器执行 FETCH 语句,才能得到任
何这些语句生成的任何错误。

您必须使用 GET DESCRIPTOR 语句的特殊情况来获得准备好的语句的 DESCRIBE
信息。
DESCRIBE 语句的典型使用,是在 PREPARE 确定关于该准备好的语句的信息之后
执行它。
然而,
随同同时启用的 OPTOFC 和“延迟的 PREPARE”特性,
GBase 8s ESQL/C 不
将 DESCRIBE 语句发送至数据库,直到它达到 FETCH 语句为止。要允许您获取关于准
备好的语句的信息,GBase 8s ESQL/C 执行类似于 SET DESCRIPTOR 语句的语句来获得

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 446 -

准备好的语句的数据类型、长度和其他系统描述符字段。然后,您可在 FETCH 之后使用
GET DESCRIPTOR 语句来获取此信息。

而且,
当数据类型为内建的数据类型时,
GBase 8s ESQL/C 仅可在 GET DESCRIPTOR
语句中的主变量上执行数据转换。对于 opaque 数据类型和复合的数据类型(集合和 row
类型),数据库服务器总是以其原本的格式将数据返回至客户机应用程序。然后,您可在
GET DESCRIPTOR 语句之后对此数据执行数据转换。

例如,数据库服务器以其内部的(二进制)格式从 opaque 类型列返回数据。因此,
您的 GBase 8s ESQL/C 程序必须将列数据放置到 var binary
(或 fixed binary)
主变量内,
当它执行 GET DESCRIPTOR 语句时。
var binary 和 fixed binary 数据类型以其内部的格
式保存 opaque 类型数据。您不可使用 lvarchar 主变量来保存该数据,因为 GBase 8s
ESQL/C 不可将 opaque 类型数据从其内部的(它从数据库服务器收到的)格式转换为其
外部的(lvarchar)格式。

当同时启用“延迟的 PREPARE”与 OPTOFC 特性时,FetArrSize 特性不奏效。当启
用这两个特性时,直到 FETCH 完成之后,GBase 8s ESQL/C 才知道行的大小。到此时,
要以 FetArrSize 值来调整访存缓冲区为时已晚。

提示:
要获得最大的优化,
请一起使用 OPTOFC、
“延迟的 PREPARE”与 AUTOFREE
特性。

DOUBLE PRECISION 关键字是 FLOAT 关键字的同义词。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 95 -