如果你要一次连统计结果也算出来,可以试试分析函数,即使使用一般sql,也没那么复杂:
select pros_yymm,sum(seg_atm) from (
  select trunc(pros_yymm,'mm',seg_atm)
) group by pros_yymm
然后手工合计

解决方案 »

  1.   

    你应该是在程VB写的,然后execute,那样用是相当于先建立一个存储过程,然后让oracle执行,但oracle中的存储过程是不允许用相当于drop,create语句的,需要将它付给字符串,然后用execute immediate ls_sql;这样才行
      

  2.   

    在Oracle中,全局临时表并不会删除,实际上你只需要建立一次,以后直接应用就行了,这与MS和Sybase不一样。实际上在断开数据库连接时,临时表中数据自动清空,不同的Session之间是隔离的,不许要当心相互影响,不过如果起用了连接共享的话,你要用On Commit delete rows使数据仅在事务内部有效。
      

  3.   

    declare 
    num number;
    v_insertSQL varchar2(1000);
    begin
      select count(*) into num from user_objects where object_name='TMP_SEG_PROS';
      if (num > 0) then
        v_insertSQL:='drop table tmp_Seg_Pros'; 
        execute immediate v_insertSQL; 
      end if;
    end ;