【发布时间】:2014-10-06 20:18:52
【问题描述】:
我正在使用 Oracle 11G 数据库。我创建了一个包,如下所述:
create or replace package forward_emp is
Function emp_sal_avg return number;
Procedure emp_new_sal;
End forward_emp;
/
package created.
然后我创建了包体:
create or replace package body forward_emp is
Function emp_sal_avg return number is
avg_sal emp.salary%type;
Begin
Select avg (salary) into avg_sal
from emp;
Return avg_sal;
End emp_sal_avg;
Procedure emp_new_sal is
Begin
Insert into Emp (salary) values (emp_sal_avg);
End emp_new_sal;
End forward_emp;
/
Package body created.
现在当我尝试调用包时,它显示错误。
Call forward_emp.emp_new_sal;
ORA- 06576: not a valid function or procedure.
请帮忙。无法理解问题所在。
【问题讨论】:
-
存储过程在 Oracle 中使用
execute命令运行 - 至少在 SQL*Plus 和 SQL Developer 中是这样。 -
它与执行命令一起工作。我也创建了其他包,但它们是由“调用”命令执行的。为什么会这样
-
我谈到的另一个包只有过程,没有函数。是不是这个原因。