【发布时间】:2019-12-02 13:47:30
【问题描述】:
我需要为十进制/数字数据类型定义隐式转换为 oid 类型,以便在查询的 where 部分中使用 = 运算符而不添加 :: 表示法。
阅读此处https://www.postgresql.org/docs/11/sql-createcast.html 的文档后,我尝试添加此转换,但它仅适用于 0 到 +2147483647 oid,因为 PostgreSQL 中的 int4 是有符号的,而 oid 类型是无符号的
CREATE CAST (numeric AS oid) WITH FUNCTION int4(numeric) AS IMPLICIT;
我知道 oid 已被弃用且不推荐使用,而且在 PostgreSQL 12 中也对它们进行了重大更改,但我现在确实需要这种解决方法。
【问题讨论】:
标签: postgresql casting implicit-conversion