我正在尝试创建一个存储函数来获取一个名为budget的参数。该函数应返回字符串' LOW'预算小于或等于500000,' MID'预算小于或等于850000,' HIGH'对于小于或等于1200000的预算,以及' ULTRA'对于超过120万的预算。但我收到的错误对我来说没有多大意义。
这是我的功能:
set term # ;
create procedure f_rating(budget int)
as
begin
if (budget <= 500000) then
return ('LOW');
else if (budget <= 850000) then
return ('MID');
else if (budget <= 1200000) then
return ('HIGH');
else
return ('ULTRA');
end #
我还是sql的新手,所以这个语法基于在线等例子。这是我的错误:
SQL Message : -804
An error was found in the application program input parameters for the SQL statement.
Engine Code : 335544569
Engine Message :
Dynamic SQL Error
SQL error code = -804
Function unknown
RETURN
任何人都可以帮我弄清楚这意味着什么吗?
答案 0 :(得分:1)
{CREATE [OR ALTER] | ALTER | RECREATE} FUNCTION <name>
[(param1 [, ...])]
RETURNS <type>
AS
BEGIN
...
END
因此您犯了两个错误 - 您使用的是procedure
而不是function
而您错过了RETURNS <type>
部分。尝试
create function f_rating(budget int) RETURNS VARCHAR(5)
as
begin
if (budget <= 500000) then
return 'LOW';
else if (budget <= 850000) then
return 'MID';
else if (budget <= 1200000) then
return 'HIGH';
else
return 'ULTRA';
end #
答案 1 :(得分:0)
过程不返回任何值,函数可以。
尝试:
create function f_rating(budget int)
as
而不是
create procedure f_rating(budget int)
as