三种Python操作GBase 8s数据库数据类型的差异
三种Python操作GBase 8s数据库数据类型的差异
Python可以通过多种方式操作GBase 8s数据库,常见的类型包括DbtPy(原生)、Pyodbc(ODBC方式)和JayDeBeApi(调用jdbc)。以下是这三种操作方式对GBase 8s数据库的数据类型支持的对比
类型 | 数据类型 | DbtPy | Pyodbc | JayDeBeApi(jdbc) |
---|---|---|---|---|
字符类型 | CHAR(N) | 是 | 是 | 是 |
字符类型 | NCHAR(N) | 是 | 是 | 是 |
字符类型 | VARCHAR(N) | 是 | 是 | 是 |
字符类型 | NVARCHAR(N) | 是 | 是 | 是 |
字符类型 | LVARCHAR(N) | 是 | 是 | 是 |
数值类型 | 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) | 是 | 是 | 是 |
布尔类型 | BOOLEAN | 是 | 是 | 是 |
扩展类型 | LIST | 是。使用bytes | 是 | 是 |
JSON类型 | JSON | 是。需转码 | 是 | 是 |
BSON类型 | BSON | 是。需转码 | 是 | 否 |
大对象类型 | TEXT | 否。可插入,不可查询。 | 是 | 是 |
大对象类型 | BYTE | 是。需转码。 | 是。需转码。 | 是 |
智能大对象类型 | CLOB | 是 | 否。查询结果异常。 | 否。可插入,不可查询。 |
智能大对象类型 | BLOB | 是。需转码。 | 是。需转码。 | 否。可插入,不可查询。 |
总结:
29种数据类型中:
DbtPy完全支持的27种(含需转码),不能完全支持的包含:INTERVAL [FIRST to LIST]和TEXT
Pyodbc完全支持的27种(含需转码),不能完全支持的包含:INTERVAL [FIRST to LIST]和CLOB
JayDeBeApi(jdbc)完全支持25种,不能完全支持的包含:DECIMAL(p)、BSON、CLOB和BLOB
参考:
JayDeBeApi对数据类型的支持
Pyodbc对GBase 8s数据库的数据类型的支持
DbtPy对GBase 8s数据库的数据类型的支持