2016-11-07 8 views
1

예산이라는 매개 변수 하나를 사용하도록 저장 함수를 만들려고합니다. 이 함수는 500000보다 작거나 같은 예산의 경우 'LOW', 850000보다 작거나 같은 예산의 경우 'MID', 1200000보다 작거나 같은 예산의 경우 'HIGH'에 대해 'ULTRA'문자열을 반환해야합니다. 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 그래서 두 개의 실수를 만든

{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