主题:[加分]关于PL/SQL的包,怎么不对呢?
先创建了一个包规范,成功创建。
再创建一个包体,就出问题了。奇怪的是:包里面的两个组件:一个过程和一个函数单独拿出来创建都是可以的。就是说这两段代码没有问题,可放在包体里创建就出问题了。源代码是这样的:请问谁能帮忙看一下,谢谢了
zg表没有问题,数据类型一致。
Create or replace package zg_package
As
Procedure change_sal
(v_name zg.name%type,v_salary zg.salary%type);
Function get_sal
(v_name zg.name%type)
Return varchar2;
End zg_package;
/
Create or replace package body zg_package as
procedure change_sal
(v_name zg.name%type,new_salary zg.salary%type) is
Begin
Update zg set salary=new_salary where name=v_name;
End change_sal;
function get_sal
(v_name zg.name%type)
Return number
Is
v_salary number;
begin
select salary into v_salary from zg where name=v_name;
return v_salary;
end get_sal;
end zg_package;
/
我怎么看都没问题啊,奇怪。
再创建一个包体,就出问题了。奇怪的是:包里面的两个组件:一个过程和一个函数单独拿出来创建都是可以的。就是说这两段代码没有问题,可放在包体里创建就出问题了。源代码是这样的:请问谁能帮忙看一下,谢谢了
zg表没有问题,数据类型一致。
Create or replace package zg_package
As
Procedure change_sal
(v_name zg.name%type,v_salary zg.salary%type);
Function get_sal
(v_name zg.name%type)
Return varchar2;
End zg_package;
/
Create or replace package body zg_package as
procedure change_sal
(v_name zg.name%type,new_salary zg.salary%type) is
Begin
Update zg set salary=new_salary where name=v_name;
End change_sal;
function get_sal
(v_name zg.name%type)
Return number
Is
v_salary number;
begin
select salary into v_salary from zg where name=v_name;
return v_salary;
end get_sal;
end zg_package;
/
我怎么看都没问题啊,奇怪。