SQL> create function sp_fun2(sname varchar2)
  2       return  number is yearsal number(7,2);
  3       begin
  4       select sal*12+nvl(comm,0)*12 into yearsal
  5       from emp where ename=sname;
  6       return yealsal;
  7       end;
  8       /
  9  
 10  
按回车键没用,/没结束。有时候会执行,有时候,会像上面一样oracle存储functionsqlselect

解决方案 »

  1.   

    SQL> create function sp_fun3(sname varchar2)
      2       return  number is yearsal number(7,2);
      3       begin
      4       select sal*12+nvl(comm,0)*12 into yearsal
      5       from emp where ename=sname;
      6       return yealsal;
      7       end;
      8  /   
     
    create function sp_fun2(sname varchar2)
         return  number is yearsal number(7,2);
         begin
         select sal*12+nvl(comm,0)*12 into yearsal
         from emp where ename=sname;
         return yealsal;
         end;
     
    ORA-00955: 名称已由现有对象使用
     我函数名明明定义的是sp3.怎么提示错误sp2.奇了怪。难道有缓存
      

  2.   

    你看一下你的函数,肯定sp3和sp2都有了建议create or replace function 函数名称,如果存在的话就会替换