oracle子程序 编写函数1计算订单应缴税收

编写函数1计算订单应缴税收:传入订单编号,返回应交税金额。0-200 缴总金额的5% ;201--400缴总金额的7%;400-800缴总金额的9%;800以上缴总金额的10%。执行验证之


CREATE OR REPLACE FUNCTION FUNC_CAL_TAXES(--传入的订单编号
                                 PI_ORDER_ID IN NUMBER)
RETURN VARCHAR2 AS
C_TOTAL_TAXES NUMBER; --总金额
C_ORDER_ID    NUMBER := PI_ORDER_ID; --订单编码

BEGIN
  C_TOTAL_TAXES := 1000000; --初始化总金额为100万
  CASE
    WHEN C_ORDER_ID <= 200 THEN
      RETURN C_TOTAL_TAXES * 0.05;
    WHEN C_ORDER_ID <= 400 THEN
      RETURN C_TOTAL_TAXES * 0.07;
    WHEN C_ORDER_ID <= 800 THEN
      RETURN C_TOTAL_TAXES * 0.09;
    WHEN C_ORDER_ID > 800 THEN
      RETURN C_TOTAL_TAXES * 0.1;
    ELSE 
      RETURN NULL;
   END CASE;                  
END;

--测试
SELECT  FUNC_CAL_TAXES(100),FUNC_CAL_TAXES(520),FUNC_CAL_TAXES(10000) FROM DUAL;

--结果
       FUNC_CAL_TAXES(100)    FUNC_CAL_TAXES(520)    FUNC_CAL_TAXES(10000)
1    50000                                     90000                                           100000