create or replace package s_package as
function m_add(int x,int y) return int;
end s_packagecreate or replace package body s_package as
function m_add(int x,int y) return int is
r int;
begin
r := x+y;
return r;
end m_add;
end s_packagedeclare
temp int;
begin
temp := s_package.m_add(2,3);
dbms_output.put_line(temp);
end;
这里怎么提示s_package无法引用m_add方法呢,我看pl/sql的使用手册,说不不加包名也可以使用其方法的。这里怎么不能用呢?
function m_add(int x,int y) return int;
end s_packagecreate or replace package body s_package as
function m_add(int x,int y) return int is
r int;
begin
r := x+y;
return r;
end m_add;
end s_packagedeclare
temp int;
begin
temp := s_package.m_add(2,3);
dbms_output.put_line(temp);
end;
这里怎么提示s_package无法引用m_add方法呢,我看pl/sql的使用手册,说不不加包名也可以使用其方法的。这里怎么不能用呢?
function m_add(x in number,y in number) return number;
end s_package;
/
create or replace package body s_package as
function m_add(x in number,y in number) return number
is
r number := 0;
begin
r := x + y;
return r;
end m_add;
end s_package;
/declare
temp number;
begin
temp := s_package.m_add(2,3);
dbms_output.put_line(temp);
end;
/
没有其他错误
改正后重新编译,将包规范和包体分开编译
再看看