are*_*tai 5 oracle plsql stored-procedures
我正在从网站http://www.plsqltutorial.com/plsql-procedure/做教程。我已经在 apex 上运行了代码:
CREATE OR REPLACE PROCEDURE adjust_salary(
in_employee IN EMPLOYEES.EMPLOYEE_ID%TYPE,
in_percent IN NUMBER
) IS
BEGIN
UPDATE EMPLOYEES
SET salary = salary + salary * in_percent / 100
WHERE employee_id = in_employee_id;
END;
Run Code Online (Sandbox Code Playgroud)
但我有错误:
Error at line 6: PL/SQL: SQL Statement ignored
4. ) IS
5. BEGIN
6. UPDATE EMPLOYEES
7. SET salary = salary + salary * in_percent / 100
8. WHERE employee_id = in_employee_id;
Run Code Online (Sandbox Code Playgroud)
我已经检查过,表员工在那里。有什么问题以及如何解决?
WHERE 雇员_id = in_employee_id;
in_employee_id没有声明,也不是参数。函数定义说参数是in_employee所以你的代码块应该是
CREATE OR REPLACE PROCEDURE adjust_salary(
in_employee IN EMPLOYEES.EMPLOYEE_ID%TYPE,
in_percent IN NUMBER
) IS
BEGIN
UPDATE EMPLOYEES
SET salary = salary + salary * in_percent / 100
WHERE employee_id = in_employee;
END;
Run Code Online (Sandbox Code Playgroud)
查看这篇文章,我发现您在创建函数时犯了一个拼写错误,文章中的函数声明是
CREATE OR REPLACE PROCEDURE adjust_salary(
in_employee_id IN EMPLOYEES.EMPLOYEE_ID%TYPE,
Run Code Online (Sandbox Code Playgroud)
因此,如果将代码更改为上述内容,则无需更改更新语句。