使用 psycopg2 时可以禁止转换为本机类型吗?
Can one disable conversion to native types when using psycopg2?
psycopg2
将一些 Postgres 数据类型的查询结果转换为本机类型。 pgdb
(PostgreSQL) 和 cx_Oracle
似乎都没有这样做。
…所以我尝试将 pgdb
换成 psycopg2cffi
被证明是困难的,因为有相当多的代码需要字符串,我需要继续支持 cx_Oracle
.
psycopg2
文档解释了如何为转换注册其他类型,但实际上我想尽可能删除该转换并获取 Postgres 提供的字符串。这可行吗?
您可以为每个 PostgreSQL 类型(或者至少为您希望代码中的字符串的每个类型)重新注册一个纯字符串类型转换程序:当您为一个已经注册的 OID 注册一个类型转换程序时,新的定义优先。只需查看 psycopg 的源代码(C 和 Python)即可找到正确的 OID。
您还可以编译您自己的禁用类型转换的 psycopg 版本。我现在这里没有源代码,但可能只是几行更改。
psycopg2
将一些 Postgres 数据类型的查询结果转换为本机类型。 pgdb
(PostgreSQL) 和 cx_Oracle
似乎都没有这样做。
…所以我尝试将 pgdb
换成 psycopg2cffi
被证明是困难的,因为有相当多的代码需要字符串,我需要继续支持 cx_Oracle
.
psycopg2
文档解释了如何为转换注册其他类型,但实际上我想尽可能删除该转换并获取 Postgres 提供的字符串。这可行吗?
您可以为每个 PostgreSQL 类型(或者至少为您希望代码中的字符串的每个类型)重新注册一个纯字符串类型转换程序:当您为一个已经注册的 OID 注册一个类型转换程序时,新的定义优先。只需查看 psycopg 的源代码(C 和 Python)即可找到正确的 OID。
您还可以编译您自己的禁用类型转换的 psycopg 版本。我现在这里没有源代码,但可能只是几行更改。