SQL存储函数给出了一个错误

问题描述:

我想创建一个存储函数来取一个名为budget的参数。该函数应返回小于或等于500000的预算的字符串“LOW”,小于或等于850000的预算的“MID”,小于或等于1200000的预算的“HIGH”,以及用于“ULTRA”的预算在1200000以上。但是我收到了一个对我来说没有多大意义的错误。SQL存储函数给出了一个错误

这里是我的功能:

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

您使用的是哪种数据库系统? –

+0

我正在使用Flamerobin数据库管理员 – Austin

syntax for stored function

{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 # 

程序不返回任何值,函数做。

尝试:

create function f_rating(budget int) 
as 

,而不是

create procedure f_rating(budget int) 
as