psmtUpdate.setString(1, "1,2,3");psmtUpdate.executeQuery();SQL: SELECT * FROM USER WHERE USER_ID IN (?)执行的时候总是报错误:ora-01722 无效数字,请高手指点一下,非常感激您的关注"1,2,3..."这个字符串是动态生成的,这个USER_ID不定个数,所以产生了上面的错误现象

解决方案 »

  1.   

    这个,你就先把sql拼好了在执行吧,用参数不好实现,我不知道
      

  2.   

    ora-01722 无效数字
    -----------
    USER_ID 是number类型的吧,要设也得用setInt
      

  3.   

    psmtUpdate.setString(1, "user_id=1 and user_id=2...");psmtUpdate.executeQuery();SQL: SELECT * FROM USER WHERE ?我现在把它变成这样,还是报错,请各位再指点一下
      

  4.   

    你这根本不是参数绑定,你绑定是一个串,这是不行的。只能where userid=? and userid2=?......然后根据字段和Java类型来选择setXXX方法将值绑定到问号。
      

  5.   

    你把sql语句SELECT * FROM USER WHERE USER_ID IN (?)改为SELECT * FROM USER WHERE USER_ID IN (“?”),这样试一下,如果你直接用1,2,3系统会认为是数字的
      

  6.   

    > 我现在把它变成这样,还是报错,请各位再指点一下楼主你没明白,setXXX() 是用来“设定值”的,不是用来“拼接 SQL 语句”的。