Сохраненная функция sql выдает ошибку

Я пытаюсь создать хранимую функцию, чтобы принять один параметр под названием бюджет. Функция должна возвращать строку "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

Может кто-нибудь помочь мне понять, что это значит?

2 ответа

Решение

Синтаксис для хранимой функции

{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
Другие вопросы по тегам