查询的时候,要遍历一张表,其中的id如果在数组ss中,就返回回来
现在ss的大小大于1000个,用 id  in   ss  的方法会报错,不知道有没有其他方法了

解决方案 »

  1.   

    什么错误呢?
    PL/SQL又没有对数据元素做上限限制啊。
      

  2.   

    in的话oracle会限制不能超过一千个
      

  3.   

    错误代码,及实现方式贴出来看看,
    感觉你代码写得不合理造成的,用LOOP遍历数组么,看看你现在的代码,有没有优化和更好的实现方式?
      

  4.   

    用ibatis,
    主要代码如下:
       select t.name
       from
          user t
       where
          t.id   in
       <iterate conjunction="," open="(" close=")">  
             #list[]#   
       </iterate>
    list是Integer型数组
      

  5.   

    1. 拆分in 为 in or in的方式
    2. 数组变成临时表。
      

  6.   

    报错为:ORA-01795: maximum number of expressions in a list is 1000
    是说list中的个数大于1000,oracle 10g的限制用in的话不能超过1000个,现在list中是超过1000个的,该怎么写
      

  7.   

    select * from table_name where id in (id1,id2,id3...);
    in后括号中的参数个数有限制,Oracle 9i 中个数不能超过256,Oracle 10g个数不能超过1000.如果不可必要必须使用in,可以采用临时表,也可以对参数进行处理成多个in,
    其中每个in列表中参数都小于1000,如 id in(id1,id2...) or id in(id501,id502...).
      

  8.   

    select * from table_name where id in (id1,id2,id3...);
    in后括号中的参数个数有限制,Oracle 9i 中个数不能超过256,Oracle 10g个数不能超过1000.如果不可必要必须使用in,可以采用临时表,也可以对参数进行处理成多个in,
    其中每个in列表中参数都小于1000,如 id in(id1,id2...) or id in(id501,id502...).