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
任何人都可以帮我弄清楚这是什么意思?
答
{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
您使用的是哪种数据库系统? –
我正在使用Flamerobin数据库管理员 – Austin