博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏。

一、问题描述

       在执行查询操作时,报了这个错误,通过分析,不是sql语句语法错误,如果是sql语法错误,就会报哪一行有问题,这个一看就是查询PostgreSQL数据类型搞错了,一个不是bigint类型的数据,数据库中保存的值为 1.0 .查询的时候让其作为bigint类型导致的。sql示例:

select  (
        ext ->> 'weekly_outpatient_days'
    ) :: BIGINT AS weekly_outpatient_days from test

二、解决方案

拿到问题sql,查看哪些字段被定为bigint类型了,然后改成其他类型的,我改为numeric类型就顺利解决了。

select  (
        ext ->> 'weekly_outpatient_days'
    ) :: numeric AS weekly_outpatient_days from test

三、总结

      出现这种问题的原因还是对PostgreSQL数据类型不了解。

1、数字类型如下

2、字符串类型如下:

 

3、一般整数类型用Integer或者bigint,高精度类型用 numeric,字符串类型用text,具体的细化请查询表格。有帮助的话,欢迎关注java基础笔记公众号。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐