Проще говоря, у меня есть таблица со столбцом IDSTAGE, содержащая число (от 1 до 5), и я пытаюсь создать функцию для получения этого числа и возврата описания. Вот что у меня есть:
FUNCTION STATUS_DESC_SF (p_idstage IN BB_BASKETSTATUS.IDSTAGE%TYPE)
RETURN VARCHAR2
AS
BEGIN
CASE
WHEN p_idstage = 1 THEN RETURN '1 - Order Submitted'
WHEN p_idstage = 2 THEN RETURN '2 - Accepted, sent to shipping'
WHEN p_idstage = 3 THEN RETURN '3 - Back-ordered'
WHEN p_idstage = 4 THEN RETURN '4 - Cancelled'
WHEN p_idstage = 5 THEN RETURN '5 - Shipped'
ELSE RETURN 'Null'
END CASE;
END STATUS_DESC_SF;
Когда я запускаю это и показываю ошибку, я получаю следующее для каждой строки, начинающейся с того, когда.
6/3 PLS-00103: Encountered the symbol "WHEN" when expecting one of
the following:
* & = - + ; < / > at in is mod remainder not rem
<an exponent (**)> <> or != or ~= >= <= <> and or like like2
like4 likec between || multiset member submultiset
The symbol ";" was substituted for "WHEN" to continue.
Я выполнил задание усердие и дважды проверил мой синтаксис и, насколько я могу судить, я не сделал ничего плохого. Я подозреваю, что ему не нравится часть THEN RETURN, но это не то место, где появляется ошибка.