下面有下面的代码,用于创建一个函数来计算员工的增量。功能将以增量百分比和工资作为输入,以回报增量量作为输出-
create or replace function calculate_Increment(incperc number, salary number)
return number
is
begin
insert into employee(emp_id, emp_name, salary, calculate_Increment(10, salary))
values (emp_id, emp_name, salary, v_increment_amount);
end;
/
预期产出为-
EMPID EMPNAME SALARY CALCULATE_INCREMENT(10,SALARY)
---------- ------------------------- ---------- ------------------------------
101 Ram 45000 4500
102 Sita 54000 5400
103 Gandhi 35000 3500
104 Indira 48000 4800
105 Cholan 25000 2500
但我面临一个错误-
Warning: Function created with compilation errors.
Select empid, empname, salary, calculate_Increment(10, salary) from employee
*
ERROR at line 1:
ORA-06575: Package or function CALCULATE_INCREMENT is in an invalid state
请帮我改正这个错误。提前谢谢你。
发布于 2020-10-21 10:29:45
由于以下几个原因,您编写的函数无效:
alone)
insert
不返回任何您不能在其中执行DML的
表示的列
如果我得到的是正确的,那么您应该这样做:
SQL> create or replace function calculate_increment
2 (incperc in number,
3 salary in number
4 )
5 return number
6 as
7 begin
8 return salary * incperc/100;
9 end;
10 /
Function created.
SQL> select emp_id, emp_name, salary, calculate_increment(10, salary) inc
2 from employee;
EMP_ID EMP_NAME SALARY INC
---------- ---------- ---------- ----------
7782 CLARK 2450 245
7839 KING 5000 500
7934 MILLER 1300 130
SQL>
发布于 2020-11-27 08:54:07
通过提供加薪百分比,创建一个表值函数,以使用员工id来增加员工的薪资。如果提供了ID,则您的职能必须能够增加单个员工的工资,否则如果没有提供ID,则您的职能应该增加所有员工的薪资。
https://stackoverflow.com/questions/64465165
复制相似问题