我这边在改硬编译sql的代码,遇到了需要设置in的参数,传参试过字符串、数组、集合,都不能使用。
请教一下in传值这边需要怎么设置他的参数
使用集合传值的代码如下
sql.append("   AND a.Request_No in  (:requestNos)");
List list = new ArrayList<String>();
list.add("012050304374");
list.add("011120608114");
map.put("requestNos",  list);

解决方案 »

  1.   

    -- 直接拼接进来,注意处理一下 SQL 注入。
    sql.append("   AND a.Request_No in  ('012050304374','011120608114')");
      

  2.   


    select object_id, object_type
      from user_objects
     where object_id in (select regexp_substr('91219,91234', '[^,]+', 1, level)
                           from dual
                         connect by rownum <= 2)-- '91219,91234' 改成你拼接好的字符串,数据项目之间用逗号隔开
    -- <=2 ,这里的 2 是数据项的个数