存储过程解题

CREATE TABLE member_info(
memberid            NUMBER,
memberlevel         VARCHAR2(20),
memberdis           NUMBER)
;
CREATE TABLE cost_info(
memberid            NUMBER,
spend               FLOAT,
COST                FLOAT)
;
--
INSERT INTO member_info VALUES(1,'VIP',10);
INSERT INTO member_info VALUES(2,'VIP',20); 
INSERT INTO member_info VALUES(3,'VIP',30);
INSERT INTO member_info VALUES(4,'VIP',40);
--创建函数
CREATE OR REPLACE FUNCTION function_mem(p_memeberid member_info.MEMBERID%TYPE,p_spend cost_info.SPEND%TYPE)
return FLOAT
IS
v_cost            cost_info.COST%TYPE;
v_memberdis       member_info.MEMBERDIS%TYPE;
BEGIN
     SELECT memberdis INTO v_memberdis FROM member_info WHERE memberid =  p_memeberid;
     v_cost :=  v_memberdis* p_spend;
   RETURN v_cost;     
EXCEPTION
     WHEN OTHERS THEN
        dbms_output.put_line(SQLERRM);
END ;
--创建procedure
CREATE OR REPLACE PROCEDURE proc_mem(p_memeberid member_info.MEMBERID%TYPE,p_spend cost_info.SPEND%TYPE)
IS
v_cost cost_info.COST%TYPE;
BEGIN
  -- SELECT function_mem(p_memeberid,p_spend) INTO v_cost FROM dual;
  v_cost:=function_mem(p_memeberid,p_spend);
  INSERT INTO cost_info VALUES(p_memeberid,p_spend,v_cost);
  COMMIT;
EXCEPTION
   WHEN OTHERS THEN
       ROLLBACK;
    dbms_output.put_line(SQLERRM);

END;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值