当前位置: 首页 > 知识库问答 >
问题:

如何使用Postgres的整数查询布尔列?

松俊才
2023-03-14

我之前发布了一个类似的问题,但我已经打开了另一个问题,因为前一个问题给了我一个解决方案,但我现在遇到了另一个问题。

我们有一个现有的Oracle数据库,它有这样定义的布尔列

CREATE TABLE MY_TABLE 
(    
SOME_TABLE_COLUMN NUMBER(1) DEFAULT 0 NOT NULL,
etc..

和与相应的java字段定义像私有的boolean一些表列;我已经开始理解这是因为Oracle没有布尔数据类型,但在引擎盖下做从布尔到整数的转换时插入数据,和反过来检索数据

当我正在将数据库从Oracle迁移到Postgres时,这引起了一个问题。由于对我之前问题的回答,我已经将列类型从NUMBER(1)迁移到BOOLEAN。这解决了插入数据的问题。然而,我们的代码库使用JDBCTemboard,不幸的是,我们在代码中有成百上千的硬编码查询,这些查询像SELECT*fromMY_TABLEWHERETABLE_COLUMN=1

当这些对Postgres DB运行时,我得到以下错误错误:运算符不存在:boolean=integer。我们需要向后兼容Oracle,所以我不能简单地更新这些查询,分别用TRUEFALSE替换10

我有没有办法配置Postgres,这样它就可以在后台进行转换来解决这个问题?我已经看过了cast,但我并不真正理解文档,而且给出的示例似乎与我的用例不匹配。感谢您的帮助。

共有1个答案

潘兴朝
2023-03-14

能否尝试在请求中使用“0”和“1”而不是0和1?我曾经使用这种语法开发与Oracle和Postgresql兼容的应用程序。应用程序使用的是JPA,但可以肯定地说,我们在nativeQuery=true时也使用了这种语法。

注意:我本想把这篇文章作为一条评论发表,但我没有必要的声誉来发表评论,因此我将这篇文章作为一个答案

 类似资料:
  • 我在这里遵循指南https://dzone.com/articles/23-usplient-ellasticsearch-example-queries,下面的bool查询让我感到困惑: 根据教程,查询的解释是: 搜索标题中有“ellasticsearch”或“solr”字样的书,由“Clinton Gormley”撰写,但不由“Radu Gheorge”撰写 我的问题是,bool查询中有3个条

  • 我使用bool查询的必须和must_not功能。它像预期的那样工作,直到我得到一个3级深的属性。 工作正常并返回结果,但如果我在bool查询中执行相同的操作,如。。 不返回任何结果。这是为什么?????记住其他bool查询,例如。。 干得很好!它只适用于任何3级深的字段,因此搜索任何1级深的术语。建议3。建议3

  • 问题内容: 我想使用排球库发布布尔值,双精度数据。我不知道如何使用它。还有其他任何过程吗?谢谢。 这是我的方法。 问题答案:

  • 问题内容: 所以我想要实现的是与每个索引的自定义可搜索字段部分匹配。我生成一个带有要搜索的值的值,如果该值不止一个单词,则每个单词又生成另一个值(我可以使用,但它有错误,或者具有未记录的设置)。 在这种情况下,我正在寻找;查询如下所示: 我的目标搜索是获取首先具有的结果,然后搜索just 或。 此示例返回4个具有的结果,然后是仅具有的结果,然后是个更多的结果。 如何提高具有完整搜索值的结果?(“电

  • 我在ES中有两个问题。对于同一组文档,两者的周转时间都不同。两者在概念上都在做同样的事情。我没有什么疑问 1-这两者之间有什么区别?2-哪个更好使用?3-如果两者相同,为什么表现不同? 映射: 更新1: 我在同一组数据上尝试了bool/必须查询和bool/过滤器查询,但我发现了奇怪的行为 1-bool/必须查询能够搜索所需的文档 2-虽然bool/filter无法搜索文档。如果我删除第二个字段条件

  • 我有一个非常特别的问题,关于查询嵌套到数组字段的布尔字段和字符串字段。索引映射如下所示: 文档索引还有许多其他字段,这些字段没有嵌套到数组字段中,但必须包含在查询字段中。我尝试了一种使用过滤器和布尔查询的方法,如下所示: 这个查询的问题是,它返回的文档在我看来不必返回。在这种情况下,文件如下所示: 您可以注意到,array_field_1的第三项包含boolean_field_2:false和正在