大家帮忙看看,为什么这样创建包体,会出错package body "sara.SALPKG" has errors?调用包体里的函数时,提示PL/SQL: could not find program unit
-------------------------------------------------------------------
create or replace package salpkg as
type salset is table of emp.sal%type;
function emp_avgsal(salary in salset)return emp.sal%type;
end salpkg;
/create or replace package body salpkg as
function emp_avgsal(salary in salset)return emp.sal%type is
begin
avgsal emp.sal%type :=0;
for i in salary.first..salary.last
loop
avgsal :=avgsal + salary(i);
end loop;
avgsal :=avgsal / salary.count;
return avgsal;
end;
end;
/set serveroutput on
declare
cursor sal_cur is select sal from emp;
empsal salpkg.salset;
begin
open sal_cur;
fetch sal_cur
bulk collect into empsal;
dbms_output.put_line(salpkg.emp_avgsal(salary => empsal));
close sal_cur;
end;
/
-------------------------------------------------------------------
create or replace package salpkg as
type salset is table of emp.sal%type;
function emp_avgsal(salary in salset)return emp.sal%type;
end salpkg;
/create or replace package body salpkg as
function emp_avgsal(salary in salset)return emp.sal%type is
begin
avgsal emp.sal%type :=0;
for i in salary.first..salary.last
loop
avgsal :=avgsal + salary(i);
end loop;
avgsal :=avgsal / salary.count;
return avgsal;
end;
end;
/set serveroutput on
declare
cursor sal_cur is select sal from emp;
empsal salpkg.salset;
begin
open sal_cur;
fetch sal_cur
bulk collect into empsal;
dbms_output.put_line(salpkg.emp_avgsal(salary => empsal));
close sal_cur;
end;
/
把这个放在is 和begin 之间看看