下面的 pl SQL 脚本将金额 c 从账户 a 转移到 b。为什么不允许更新函数中的表/如何修复?
create or replace function ueberweisung (a varchar2, b varchar2,c number)
RETURN varchar2 IS
k1 number; -- Variablendeklaration
k2 number;
BEGIN
SELECT saldo into k1
FROM konto
WHERE konto_nr=a;
SELECT saldo into k2
FROM konto
WHERE konto_nr=b;
k1:=k1-c;
k2:=k2+c;
update konto
set saldo = case
when konto_nr=a then k1
when konto_nr=b then k2
end;
commit;
RETURN (c ||'Eur überwiesen von Konto ' || a || 'a uf Konto ' || b);
END ueberweisung;