这是我打电话的程序:
com.google.inject.Inject
我在触发器中调用它:
set term # ;
create procedure f_rating(budget int)
returns (final_result varchar(5))
as
begin
if (budget <= 500000) then final_result = 'LOW';
else if (budget <= 850000) then final_result = 'MID';
else if (budget <= 1200000) then final_result = 'HIGH';
else if (budget > 1200000) then final_result = 'ULTRA';
end #
commit work #
我很确定这可能是一个愚蠢的语法错误,但我无法弄清楚。
答案 0 :(得分:1)
f_rating
不是可选择的存储过程(它没有SUSPEND
)所以调用它的语法是EXECUTE PROCEDURE <name> RETURNING_VALUES(<params>);
,即
set term # ;
CREATE TRIGGER tr_department_rating_insert for department_tester after insert
as
begin
EXECUTE PROCEDURE f_rating(NEW.budget) RETURNING_VALUES(:temp_rating);
update department_rating
set occurrences = occurrences + 1
where rating = temp_rating;
end #
commit work #