+ -
当前位置:首页 → 问答吧 → mysql 存储过程可以有几个参数?

mysql 存储过程可以有几个参数?

时间:2011-07-05

来源:互联网

SQL code


CREATE PROCEDURE raiseZhangHuZongE(IN _jing_e DECIMAL(20,5),IN _yong_hu_id)--{
    BEGIN
    DECLARE jing_e DECIMAL(20,5) DEFAULT 0.00000;
    SELECT zhang_hu_zong_e FROM JieDai.zhanghu_normal WHERE yong_hu_id = _yong_hu_id;
    SET jine_e = jing_e + _jing_e; 
    UPDATE JieDai.zhanghu_normal SET zhang_hu_zong_e = jing_e;
    END;
--}


要传递两个参数怎么办?难道传一个字串,用像什么 split的方法来处理成两个?
文档上说可以多个啊?怎么我不行
CREATE
  [DEFINER = { user | CURRENT_USER }]
  PROCEDURE sp_name ([proc_parameter[,...]])
  [characteristic ...] routine_body

CREATE
  [DEFINER = { user | CURRENT_USER }]
  FUNCTION sp_name ([func_parameter[,...]])
  RETURNS type
  [characteristic ...] routine_body

作者: aeolus_boy   发布时间: 2011-07-05

CREATE DEFINER=`root`@`%` PROCEDURE `proc_alarTigger`(
  alertTypeId int, 
  alertValue float,
  terminalId int,  
  networkType varchar(1), 
  out flag int  
)
BEGIN

DECLARE rflag int;
IF NOT EXISTS(SELECT * FROM alarm_shield WHERE alert_type_id=alertTypeId AND terminal_id=terminalId AND state='0') THEN  
  IF EXISTS(SELECT * FROM alarm_shield WHERE alert_type_id=alertTypeId AND terminal_id=terminalId AND state='1') THEN  
  SET flag=1;  
  ELSE
  IF NOT EXISTS(SELECT * FROM alarm_shield WHERE alert_type_id=alertTypeId AND isglobal='1') THEN  
  SET flag=1;  
  ELSE  
  SET flag=0;
  END IF;
  END IF ;
ELSE
  SET flag=0;
END IF;
END;

作者: tfhui928   发布时间: 2011-07-05

out 关键字 
flag 代表输出值

作者: tfhui928   发布时间: 2011-07-05

create procedure sp_test(a int,b int...)
begin
end

作者: rucypli   发布时间: 2011-07-05

可以传递2个参数,什么问题

作者: WWWWA   发布时间: 2011-07-05

相关阅读 更多

热门下载

更多