sql 存储函数出错

sql stored function gives an error

我正在尝试创建一个存储函数来获取一个名为 budget 的参数。该函数应 return 字符串 'LOW' 预算小于或等于 500000,'MID' 预算小于或等于 850000,'HIGH' 预算小于或等于 1200000,'ULTRA' 预算超过 1200000。但我收到一个对我来说意义不大的错误。

这是我的函数:

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

谁能帮我看看这是什么意思?

过程没有 return 任何值,函数有。

尝试:

create function f_rating(budget int) 
as

而不是

create procedure f_rating(budget int) 
as

syntax for stored function

CREATE FUNCTION funcname [ ( [ <in_params> ] ) ]
  RETURNS <domain_or_non_array_type> [COLLATE collation]
  [DETERMINISTIC]
  <module-body>

所以你犯了两个错误,你使用 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 #