python - 通过 OID 转换为类型?

标签 python postgresql libpq

我想不使用类型名称,而是使用类型的 OID 将值转换为类型。这可能吗?所以代替:

SELECT '{{a}}'::char[]

SELECT '{{a}}'::1002

(尽管上面会导致语法错误)

上下文:我正在用 Python 编写一个库来查询 PostgreSQL,其中包括从 PostgreSQL 类型到 Python 类型的转换,我想确保测试所有类型,并且检查列出的所有 OID 似乎是最简单的在https://github.com/postgres/postgres/blob/master/src/include/catalog/pg_type.dat

最佳答案

我不知道是否可以通过 oid 调用,但是 如果你有 postgresql 数据库,为什么不在你的 python 库中使用表 pg_type 呢? 我猜你想为 Postgresql 和 Python 类型之间的映射构建自动测试,这样你在检查之前可以从该表中查询有关 Postgresql 中内置类型的相关信息

select *  from pg_type 

您可以按类型类型(基本类型或其他)和类型类别(数字、数组等)进行过滤

The doc about pg_type

附:希望这会有所帮助 =)

关于python - 通过 OID 转换为类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71884380/

相关文章:

python - 数据帧索引(仅)到 CSV python

python - Django form.is_valid 不断抛出 KeyError

python - 解析lxml中的html正文片段

Python:调用名称存储在变量中的函数

sql - Knex 查询返回 bool 逻辑

linux - 在 CentOS 5 中使用 Asterisk 进行 IVR 集成

sql - to_char in where 子句 SQL/Postgresql

ruby-on-rails-3 - 为什么 rake 由于 libpq.5.dylib 而中止

postgresql - libpq Postgres PQexecParams 2 小时超时

c++ - LNK2005,使用 libpq 作为静态库