数据库连接参数stringtype之坑

背景

某次IDEA重置后数据库启动参数丢失,重新配置后debug某种sql执行报错:
错误:操作符ANY/ALL(array)要求数组在右边 附错误图如下:

测试/验证

然后开始各种怀疑人生,环境上没有问题,本地却各种不行。

测试第一次:不使用占位符,直接替换是可以执行。

测试第二次:数据库复现错误,发现any语法中如果是个字符串转换为数组即可正常

破案

最后在同事一起的猜测下可能跟数据库连接参数有关,对比之前的数据库连接发现少了参数stringtype=unspecified
官网参数解释大概意思,加了这个参数就代表无类型的,就会根据参数自动推断类型做转换,否则不对字符串做隐示转换为数组,导致any语法报错。