我正在尝试创建一个没有参数和有参数的存储过程。
请帮助,我得到一个错误。
create or replace procedure
raise_salary(e in number,amount in number,s out number)
is
begin
update emp
set manager_id = manager_id + amount
where EMPLOYEE = e;
commit;
select manager_id into s
from emp
where EMPLOYEE = e;
end;
/
variable kl;
execute RAISE_SALARY(2,2,:kl);
print :kl
exec RAISE_SALARY;
字符串
不被理解
1条答案
按热度按时间nzk0hqpo1#
明显的错误是
exception
,它 * 在空间中丢失 *;它在这里做什么?你没有处理任何异常,所以-删除它。另外,如果你直接使用了“datatype 1”和“datatype 2”,那是不起作用的。你必须指定有效的数据类型(比如number,varchar 2,等等)。
修复后,它可以工作(但-如果你想让我们 * 真正 * 帮助-考虑发布你使用的确切代码,沿着你得到的错误):
字符串
没有任何参数的程序:
型
[编辑],根据您在编辑问题中发布的代码。嗯,这没有多大意义。您应该更新 * 工资 *,而不是经理的ID。
样品表:
型
您的过程已修复;尝试为参数提供给予有意义的名称(请阅读PL/SQL中的 * 最佳实践 *)。
型
在SQL*Plus中进行测试:
型