2016-11-07 3 views
1

budgetという1つのパラメータを使用するストアドファンクションを作成しようとしています。この関数は、500000以下の予算の場合は文字列 'LOW'、850000以下の場合は 'MID'、1200000以下の場合は 'HIGH'、 1200000を超える予算です。しかし、私には意味をなさないエラーが発生しています。私は、SQLにまだ新しいです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 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

答えて

1

syntax for stored functionがそのように使用すると、2つのミスを

{CREATE [OR ALTER] | ALTER | RECREATE} FUNCTION <name> 
[(param1 [, ...])] 
RETURNS <type> 
AS 
BEGIN 
    ... 
END 

を行っているされて - あなたの代わりにfunctionprocedureを使用すると、あなたは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 # 
0

プロシージャは値を返しません。

試してみてください。

create function f_rating(budget int) 
as 

代わりの

create procedure f_rating(budget int) 
as 
関連する問題