0
Oracle 12c에서 저장된 함수를 사용하여 주문에 적용되는 할인을 계산하는 보고서를 생성하려고합니다. 테이블이 있고 열 o_id가있는 주문입니다. 주.의 각 행은 o_id, ol_quantity 및 ol_price를 갖는 별도의 order_line 테이블입니다. 주문이 $ 100 이상인 경우 $ 10 할인이 주문에 적용됩니다.저장된 SQL 함수를 사용하여 보고서 생성
내가 컴파일 저장 기능을 만들었습니다,하지만이 기능을 실행하려고 할 때 오류 얻을 :
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;
그리고 내 코드 : 여기
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
는 기능입니다 그것을 실행하십시오 :
var cost number;
execute :cost := discountsreport(1);
print cost;
그래요. 감사. 나는 그것을 변경 : 만들거나 기능이 을 DiscountsReport 대체 (ORDER_ID REAL IN) REAL이 %의 진짜 반환; 총 진짜; final_cost real; begin SUM (order_line.ol_quantity * order_line.ol_price)을 에서 전체로 선택하십시오. 여기서 o.o_id = order_id; 경우 총> = 100 다음 final_cost = 90; end if; return final_cost; end; /하지만 여전히 오류가 발생합니다. – ThomYorkkke
무엇이 오류입니까? –