【发布时间】:2017-07-23 21:17:29
【问题描述】:
我有一张名为Table A 的表,它有三个字段aa ab ac。 ac 在 PostgreSQL 中是 Boolean,而在迁移到 oracle db 时,我已经做到了 Number(1)。但在后端代码中,我编写了类似SELECT * FROM A where ac = true 的SQL 查询。 在不更改 SQL 查询的情况下,我想从 oracle db 获取数据。请让我知道这是否可能。如果可能的话,我应该采用哪种方法。
【问题讨论】:
-
我怀疑不更改查询是否可行。您将收到语法错误“无效标识符”。
true可能是 Postgre 中的布尔值;在 Oracle 中它没有特殊含义,因此解析器会将其视为标识符(列名或别名)。为什么需要运行 SQL 查询而不进行更改?如果您从 Postgre 迁移到 Oracle,您应该期望某些查询必须适应 Oracle。 -
我想在 PostgreSQL 和 Oracle DB 上运行应用程序。像
MySQL一样,它会自动将布尔值转换为 1/0。我们可以在 oracle DB 中这样实现吗? -
不可能。 Oracle 不支持 SQL 表达式中的布尔值。这只有在 Postgres 中不使用布尔值而使用整数时才有可能。
-
改代码就行了
-
有什么破解方法吗??
标签: java oracle postgresql database-migration ojdbc