SQuirreL输出PostgreSQL的bit类型结果为<Error>的问题如何规避?
SQuirreL客户端PostgreSQL bitstring类型显示的规避方案
该问题可以规避,本质是SQuirreL客户端默认的PostgreSQL数据类型映射规则、或关联的JDBC驱动版本不支持直接解析bit(n)类型的返回值,和SQL本身的语法正确性无关,你给出的原SQL在psql等原生PostgreSQL客户端中可以正常输出结果。
可选择的规避方案如下:
- 方案1(优先推荐,无需修改客户端配置):查询时显式将bit类型转换为text类型返回,修改后的SQL如下:
SELECT (('1234'::bigint)::bit(16))::text AS bit_result;
返回结果为字符串格式,SQuirreL可直接正常显示。
- 方案2(修改客户端映射配置):调整SQuirreL的PostgreSQL连接配置:
- 打开对应PostgreSQL连接的「别名编辑」页,切换到「属性」标签
- 找到「数据类型转换」配置板块,将BIT、BIT VARYING类型的默认映射规则,从默认的Bit类型修改为String类型
- 保存配置后重启连接,原SQL即可正常返回结果
- 方案3(升级JDBC驱动):将SQuirreL关联的PostgreSQL JDBC驱动升级到42.2.23及以上的稳定版本,旧版本驱动对bit(n)类型的解析存在已知兼容问题,升级后即可解决该异常。
内容的提问来源于stack exchange,提问作者zb226
相关产品推荐
相关产品推荐

