Создание отчета с сохраненной функцией 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 ответ
Решение
Ваше "если" утверждение абсолютно неверно. Взгляните на документацию: если-то-еще