创建数据表a
CREATE TABLE a   

dt        varchar2(10),  
num       number(10),   
sum_num   number(10)  

向表a中插入5条记录      
insert into a values('201201',10,10);  
insert into a values('201202',20,20);  
insert into a values('201203',30,30);  
insert into a values('201204',40,40);  
insert into a values('201205',50,50); 
查询a表记录:
 创建函数sum_num()
create or replace function sum_num(dt  VARCHAR2)
return number
IS
  --PRAGMA AUTONOMOUS_TRANSACTION;
 n_Sum NUMBER;
begin
    select sum(nvl(b.num,0))
    into   n_Sum
    from  a b
     where b.dt<dt;
    return n_Sum;
end;
向表中插入一条记录:
方法一:
insert into a values('201206',60,sys.sum_num('201206'));
结果如下:
 方法二:
   insert into a values('201206',60,(select sum(b.num) from a b where b.dt<'201206')); 
为什么会出现不同的结果呢??