--定义包
create or replace package mypackage is
--声明全局变量
c_pi constant number:=3.14;
--计算面积
function getArea(id in number )
return number;
end mypackage;--定义包体
create or replace package body mypack
is
function getArea(r in number)
      return number;
      is
        v_area number;
      begin
        v_area:=r*r*c_pi;
        return v_area;
       end;
 end;--调用包
declare 
      v_area number;
begin
   v_area:=mypackage.getArea(1);
   dbms_output.put_line(v_area);
end;
在oracle中定义了包,也定义了主体,但在调用函数的时候有错 ,希望大家帮我看看是那里错了,我是在调用包的时候出错了,也就是执行
declare 
      v_area number;
begin
   v_area:=mypackage.getArea(1);
   dbms_output.put_line(v_area);
end;
出错了

解决方案 »

  1.   

    create or replace package mypackage is --声明全局变量
      c_pi constant number:=3.14;
      function getArea(id in number ) --计算面积
        return number;
    end mypackage;
    /--定义包体
    create or replace package body mypack
    is
      function getArea(r in number)
        return number;
      is
        v_area number;
      begin
        v_area:=r*r*c_pi;
        return v_area;
      end;
    end;
    /-- 名字要一致啊
      

  2.   

    create or replace package mypackage 
    as --声明全局变量
      c_pi constant number:=3.14;
      function getArea(r in number ) --计算面积
        return number;
    end mypackage;
    /--定义包体
    create or replace package body mypackage
    as
      function getArea(r in number)
        return number
      is
        v_area number;
      begin
        v_area:=r*r*c_pi;
        return v_area;
      end;
    end;
    /--调用包
    declare  
      v_area number;
    begin
      v_area:=mypackage.getArea(1);
      dbms_output.put_line(v_area);
    end;