三种Python操作GBase 8s数据库数据类型的差异

2025-03-27更新

三种Python操作GBase 8s数据库数据类型的差异

Python可以通过多种方式操作GBase 8s数据库,常见的类型包括DbtPy(原生)、Pyodbc(ODBC方式)和JayDeBeApi(调用jdbc)。以下是这三种操作方式对GBase 8s数据库的数据类型支持的对比

类型数据类型DbtPyPyodbcJayDeBeApi(jdbc)
字符类型CHAR(N)是是是
字符类型NCHAR(N)是是是
字符类型VARCHAR(N)是是是
字符类型NVARCHAR(N)是是是
字符类型LVARCHAR(N)是是是
字符类型VARCHAR2(N)待验证待验证是
字符类型NVARCHAR2(N)待验证待验证是
字符类型CLOB2待验证待验证是
数值类型DECIMAL(P,S)是是是
数值类型SMALLINT是是是
数值类型INTEGER是是是
数值类型BIGINT是是。需定义转换。是
数值类型INT8是是是
数值类型MONEY(P,S)是是是
数值类型SERIAL是是是
数值类型BIGSERIAL是是。需定义转换。是
数值类型SERIAL8是是是
数值类型SMALLFLOAT是是是
数值类型FLOAT是是是
数值类型DECIMAL(P)是是是*,超精度显示非预期值
日期时间类型DATE是是是
日期时间类型DATETIME [FIRST TO LAST]是是是
日期时间类型INTERVAL [FIRST TO LIST]是。部分类型不支持否。无转换定义。是
日期时间类型TIMESTAMP(N)是是是
日期时间类型TIMESTAMP(N) WITH TIME ZONE待验证待验证是
布尔类型BOOLEAN是是是
扩展类型LIST是。使用bytes是是
JSON类型JSON是。需转码是是
BSON类型BSON是。需转码是是
大对象类型TEXT否。可插入,不可查询。是是
大对象类型BYTE是。需转码。是。需转码。是
智能大对象类型CLOB是否。查询结果异常。是,查询需额外处理
智能大对象类型BLOB是。需转码。是。需转码。是,查询需额外处理
RAW类型RAW待验证待验证是

注:DECIMAL(p)在JAYDEBEAPI中超过int8精度的值显示为非预期,插入没问题。

总结:

29种数据类型中:
DbtPy完全支持的27种(含需转码),不能完全支持的包含:INTERVAL [FIRST to LIST]和TEXT
Pyodbc完全支持的27种(含需转码),不能完全支持的包含:INTERVAL [FIRST to LIST]和CLOB
JayDeBeApi(jdbc)完全支持34种。

参考:

JayDeBeApi对GBase 8s数据库数据类型的支持
Pyodbc对GBase 8s数据库的数据类型的支持
DbtPy对GBase 8s数据库的数据类型的支持

标签: pyodbc, GBase, python, DbtPy, jaydebeapi

添加新评论