关于prepareStatement的setString问题!急,请各位高手关注一下
psmtUpdate.setString(1, "1,2,3 ");
psmtUpdate.executeQuery();
SQL: SELECT * FROM USER WHERE USER_ID IN (?)
执行的时候总是报错误:ora-01722 无效数字,请高手指点一下,非常感激您的关注
"1,2,3... "这个字符串是动态生成的,这个USER_ID不定个数,所以产生了上面的错误现象
------解决方案--------------------这个,你就先把sql拼好了在执行吧,用参数不好实现,我不知道
------解决方案--------------------你这根本不是参数绑定,你绑定是一个串,这是不行的。只能where userid=? and userid2=?......然后根据字段和Java类型来选择setXXX方法将值绑定到问号。
------解决方案--------------------你把sql语句SELECT * FROM USER WHERE USER_ID IN (?)改为SELECT * FROM USER WHERE USER_ID IN (“?”),这样试一下,如果你直接用1,2,3系统会认为是数字的
------解决方案--------------------没看明白。。。。
------解决方案--------------------> 我现在把它变成这样,还是报错,请各位再指点一下
楼主你没明白,setXXX() 是用来“设定值”的,不是用来“拼接 SQL 语句”的。