将 PostgreSQL 迁移到 Oracle,布尔兼容性

问题描述 投票:0回答:3

我有一张名为

Table A
的表,它有三个字段
aa ab ac
ac
在 PostgreSQL 中是
Boolean
,在迁移到
oracle db
时我已经做到了
Number(1)
。但在后端代码中,我编写了类似
SELECT * FROM A where ac = true
的 SQL 查询。 在不更改 SQL 查询的情况下,我想从 oracle db 获取数据。请让我知道这可能或不可能。如果可能的话我应该遵循哪种方法。

java oracle postgresql database-migration ojdbc
3个回答
0
投票

您必须更改 SQL(代码)。 没有其他办法解决它。 Oracle SQL 不支持布尔值。


0
投票

这个问题的解决方案很简单。 在 Oracle 端创建一个视图,并将布尔列转换为整数,然后从视图中进行选择。

pg:创建视图 jed 作为选择 id,isnew::integer from thattable;

pg:将 jed 上的 select 授予公众; -- 是的,不要公开:)

oracle:从jed@link2pg中选择*; (您获得了数据,不再有 ORA-00600)


-1
投票

如果服务是Python,我建议你在 PostgreSQL 中将其保留为整数,并设置一个检查约束以仅接受 0 或 1 的值。在 ORM 中进行映射时,你可以对 0 执行

int(False)
,对 1 执行
int(True)
,然后将其保存到数据库。

© www.soinside.com 2019 - 2024. All rights reserved.