使用ibatis导入大量数据会产生奇怪的错误

时间:2017-05-12 09:44:03

标签: java sql oracle ibatis

我试图使用Ibatis(不是myIbatis)在oracle DB上导入1次 大量数据但没有成功。 在代码下面:

<insert id="insertList" parameterClass="java.util.List"> begin <iterate conjunction=" "> Insert Into TABLE( id, col1, col2) values ( SEQUENCE.nextval, #[].col1#, #[].col2#); </iterate> end; </insert>

public void insertList(List<TestBean> insertList) throws SQLException
      {
         try
         {
            sqlMap.insert("insertList", insertList);
         }
         catch(SQLException e)
         {
           System.out.Print("error"+e);
         }
      }

生成的错误令人困惑,因为我们在10g上尝试了它,结果是由program is too large引起的,这是有道理的。

  • on 11g并且我不确定生成的错误是否是由db版本引起的,是发送insertList的列表在过程中提交它确实错过行为工作作为col1的值arrayList取代col2 我确实跟踪了我jetspeed的日志,得到了执行声明和ibatis发送的参数(结果是所有的参数都放在右边,一切看起来都很好)
  • 我确实直接从pl/sql Developer执行了这些陈述,而且数据很好地整合了

作为解决方案,我确实转移到批处理文件并且没有错误,我得到了我需要但仍然想知道导致我的列表未命中的问题是什么,并导致尝试插入col1的值进入col2

  • 是因为ibatis和迭代确实破坏了列表吗?
  • 是从oracle方面来的,oracle没有很好地处理好这个列表?
  • 可能来自服务器端吗?
  • 最后我能找到解决这种插入的方法吗?
  • 注意:在少数记录上尝试这种情况对我来说很好,没有错误。

0 个答案:

没有答案