本人最近在写存储过程时,使用游标打开了一个包含几万条数据的记录集,  
用游标循环取出每条数据,加工之后再插入到另一个表中,这样循环几万次下来,就需要使用几万条insert语句,需要消耗大量的时间。偶的想法是,能不能先把这几万条加工好的数据存放在内存中,然后用类似于
insert  table1  (select  *  from  table2)的方法一次性把内存中的数据插入到表里。这样程序在执行过程中肯定会快很多。在此先谢谢提出参考意见朋友。

解决方案 »

  1.   

    up
    可以吗?我也想知道
    是说象fox中的append from text 那样吗?
      

  2.   

    先select到一个临时表里,然后insert  table1  (select  *  from  table2)
    行不行呢?
      

  3.   

    可以FORALL批量绑定技术来提高效率
      

  4.   

    你的加工复制吗,
    不复杂就用select 到临时表
    insert into tb1 (tb1.field1) (select tb2.fidld2+处理代码 from tb2)
      

  5.   

    在select 语句中加工不就行了嘛
      

  6.   

    用对象表和批联编、游标相结合的方法,bulk collect 关键字