oracle数据库一次插入数千条记录(插入的记录是从Excel中导入的,所以数据量比较大),我为了事务控制用的StringBuilder拼接的sql语句,是“begin insert ……;insert……;……;end;”结果是oracle执行时,报错:sql字符串超长;最后我采用的方法是,一条一条的插,如果有其中的一条出现异常,再删掉之前插入的数据,我知道这是一种比较保守的方法,请问还有别的好方法么?(开发环境是vs2008,)

解决方案 »

  1.   

    在excel中用CONCATENATE函数将你每条INSERT数据拼接成完整的INSERT语句,然后用单独的文件c:\insert.sql
    再SQLPLUS命令下执行此文件 @c:\insert.sql,如果发生rollback就是了啊!
      

  2.   

    这样处理就很好啊.
    建议先建张临时表,先把数据插到临时表,如果出现错误就truncate 临时表,减少日志消耗.没问题再把临时表的数据插入到正式表.