+ -
当前位置:首页 → 问答吧 → oracle 遍历数组

oracle 遍历数组

时间:2011-12-26

来源:互联网

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

作者: insdf   发布时间: 2011-12-26

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

作者: LuiseRADL   发布时间: 2011-12-26

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

作者: insdf   发布时间: 2011-12-26

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

作者: java3344520   发布时间: 2011-12-26

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

作者: insdf   发布时间: 2011-12-26

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

作者: inthirties   发布时间: 2011-12-26

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

作者: insdf   发布时间: 2011-12-26

引用 5 楼 inthirties 的回复:
1. 拆分in 为 in or in的方式
2. 数组变成临时表。

怎么写呢

作者: insdf   发布时间: 2011-12-26