能不能把插入操作放在存储过程中执行?insert into table ()
select (...) from .....

解决方案 »

  1.   

    oracle中要通过ref cursor返回结果集
    然后遍历cursor,循环插入数据
      

  2.   

    SQL> select * from a;   ITEM_NO ITEM_SUB_NO ITEM_NAME
    ---------- ----------- --------------------
             1          11 Aa1
             2          21 A21
             1          12 A12Executed in 0.015 secondsSQL> select * from b;   ITEM_NO ITEM_SUB_NO ITEM_CODE
    ---------- ----------- --------------------Executed in 0 secondsSQL> insert into b select * from a;3 rows insertedExecuted in 0.016 secondsSQL> select * from b;   ITEM_NO ITEM_SUB_NO ITEM_CODE
    ---------- ----------- --------------------
             1          11 Aa1
             2          21 A21
             1          12 A12Executed in 0.016 secondsSQL>
      

  3.   

    SQL SERVER:
    INSERT INTO TABLE (FILED...) EXEC STORE PROCEDURE  (这里返回的是一个记录集的存储过程)
    上面的是一条插入语句,是通过存储过程返回的结果集插入到表里面去,需要说明的是,这个存储过程绝对不是简单的一条SELECT * FROM TABLE 语句,由复杂的逻辑构成,更不能象楼上那样写成多条语句
      

  4.   

    --------------------------------------------------------------
    您好,我们是“2006中国杰出数据库工程师评选”活动组委会。
    您的帖子已经被我们转载到本次评选官方网站的“专家在线答疑”区。
    http://www.bestdba.cn/match_discussion.aspx在那里,进入本次评选终选的30位数据库工程师将与您展开积极的互动。他们会为您的问题提供满意的答案,此外,您还可以在“专家在线答疑”区提出新的问题并参与讨论。您的帖子位于:
    http://www.bestdba.cn/match_discussion3.aspx?pointid=556&pointid2=1&pointid3=5&pcount=stc
    非常感谢您对本次活动的支持!