Создание отчета с сохраненной функцией SQL

Я пытаюсь создать отчет, который рассчитывает скидку, примененную к заказу, используя хранимую функцию в Oracle 12c. У меня есть таблица заказов с колонкой o_id. Каждая строка заказа представляет собой отдельную таблицу order_line, имеющую o_id, ol_quantity и ol_price. Если сумма заказа превышает 100 долларов США, к заказу применяется скидка в размере 10 долларов США.

Я создал хранимую функцию, которая компилируется, но когда я пытаюсь запустить функцию, я получаю сообщение об ошибке:

Error(10,1): PLS-00103: Encountered the symbol "FINAL_COST" when expecting one of the following:     * & - + / at mod remainder rem then <an exponent (**)> and or    || multiset 

Вот функция:

create or replace function DiscountsReport
(order_id IN REAL) RETURN REAL 
is
percent real;
final_cost real;
being
select SUM(order_line.ol_quantity * order_line.ol_price) as total from order_line
where o_id = order_id;
if total >= 100 final_cost = 90;
return final_cost;
end;

И мой код для запуска это:

var cost number;
execute :cost := discountsreport(1);
print cost;

1 ответ

Решение

Ваше "если" утверждение абсолютно неверно. Взгляните на документацию: если-то-еще

Другие вопросы по тегам