日期:2014-05-17  浏览次数:20768 次

请教函数编译错误
          create or replace function my_fun(eno number,name out varchar2,num1 in number,num2 in out number,)      
          return varchar2
          is
          v_result number(10);
          begin
             select ename into name from emp where empno=eno;
             return name;
             v_result :=num1+num2;
             num2 :=v_result;
          exception
             when no_data_found then
                dbms_output.put_line('员工号不存在');
          end;
          /

警告: 创建的函数带有编译错误。

SQL> show error
FUNCTION MY_FUN 出现错误:

LINE/COL ERROR
-------- --------------------------------------------------
1/80     PLS-00103: 出现符号 ")"在需要下列之一时:
         <an identifier>
         <a double-quoted delimited-identifier> current

请问这个错误是在哪里
还有,通过show error能确认错误出现在哪行吗,块编译错误貌似会直接在错误行下面标星号的。

------解决方案--------------------
错误很明显:
 create or replace function my_fun(eno number,name out varchar2,num1 in number,num2 in out number,)  

eno number 是输入还是输出参数?你没有写啊?
------解决方案--------------------
   create or replace function my_fun(eno number,name out varchar2,num1 in number,num2 in out number,)  
逗号?
------解决方案--------------------
引用:
   create or replace function my_fun(eno number,name out varchar2,num1 in number,num2 in out number,)  
逗号?
去掉