我的表employees
包含eno, ename, job, sal, comm
列
和像
INSERT a new employee
eno as 7787,
ename as 'abc',
job as 'salesman'
sal as 2000,
comm as tax amount
此税是类似
的功能CREATE OR REPLACE FUNCTION tax
( p_sal employees.sal%type
)
RETURN NUMBER
IS
v_tax employees.sal%type;
BEGIN
v_tax:= CASE
WHEN SAL> 4000 THEN SAL * 0.33
WHEN SAL >2500 THEN SAL *0.25
WHEN SAL >1500 THEN SAL * 0.20
ELSE 0
END;
RETURN v_tax
END tax;
在INSERT语句中,我无法对列tax
使用函数comm
。
有没有其他方法可以做到这一点,或者如何才能最好地实现这一目标?
答案 0 :(得分:2)
当你说
时我无法将功能
tax
用于列comm
你的意思是你不允许使用这个功能,或者你无法弄清楚如何使用它?
假设后者,我不明白为什么你不能在INSERT语句中使用函数。但是,您已经完全错误地了解了INSERT语句的语法。
尝试
INSERT INTO employee (eno, ename, job, sal, comm)
VALUES (7787, 'abc', 'salesman', 2000, tax(2000));
我不知道你的INSERT语句中的amount
来自哪里,但鉴于你的函数采用了一个名为p_sal
的参数,我猜它是应用于sal
列中的值的。 1}}。