我正在尝试创建一个如下所示的函数,但是会在标题中声明错误。
create or replace function gettaxmin(period_tax_type_id in double precision, tax_range in number) return double precision is
Result double precision;
begin
SELECT CASE WHEN max(tax_range) is null THEN 0 ELSE max(tax_range) END
FROM period_tax_rates WHERE (tax_range < 1) AND (period_tax_type_id = 2);
return(Result);
end gettaxmin;
有什么想法吗?
答案 0 :(得分:4)
您必须将SELECT语句的结果存储到变量中(在本例中为“Result”):
create or replace function gettaxmin
(period_tax_type_id in double precision, tax_range in number)
return double precision
is
Result double precision;
begin
SELECT CASE WHEN max(tax_range) is null THEN 0 ELSE max(tax_range) END
INTO Result
FROM period_tax_rates WHERE (tax_range < 1) AND (period_tax_type_id = 2);
return Result;
end gettaxmin;
答案 1 :(得分:3)
您需要将结果存储在INTO结果
中create or replace function gettaxmin(period_tax_type_id in double precision, tax_range in number) return double precision INTO
Result double precision;
begin
SELECT CASE WHEN max(tax_range) is null THEN 0 ELSE max(tax_range) END
FROM period_tax_rates WHERE (tax_range < 1) AND (period_tax_type_id = 2);
return(Result);
end gettaxmin;