如果根据条件来插入的话。当1时。。,当2时。
那还不如直接从表中选择呢,把1的全部操作,把2的全部操作

解决方案 »

  1.   

    你用了insert all/first就可以把不同条件的插入放在一条SQL里执行。否则你只有写多条插入SQL了。就起这个作用。
      

  2.   

    而且还可以在一条SQL中向多个表插入数据。不过这个功能我用得不多。
      

  3.   

    给你个例子
    for j in reverse  1..10 loop
             --insert into tb_z(rpt_date ,dept_id,item,qty) values(to_date('2007-01-03','yyyy-MM-dd'),'D'||j,'I'||j,round(j*300/3,3));
             insert all --first,不会被重复插入
             when i <> 2 then into tb_z(rpt_date ,dept_id,item,qty)
             else into tb_temp_z(rpt_date ,dept_id,item,qty)--如果两个表结构完全一样,则列举不用列名
             select to_date('2007-01-02','yyyy-MM-dd')as rpt_date,'D'||j as dept_id,'I'||j as item,round(j*300/3,3) as qty from dual;
         end loop;
         commit;
      

  4.   

    那我写成i==2,i<>2的不是更快吗。
    连循环都省了。