日期:2014-05-16  浏览次数:20771 次

mysql 怎么使用游标?
SQL code


create PROCEDURE PRO_TradeToOrder
(
    p_channel_code varchar(10), 
    p_date varchar(10) 
)
BEGIN
declare tid varchar(50);
DECLARE mycur CURSOR  for 
SELECT tid FROM top_trades WHERE is_transform = 0 AND status = 'WAIT_SELLER_SEND_GOODS' AND channel_code = p_channel_code and DATE_FORMAT(created,'%Y-%m-%d') = p_date;
OPEN  mycur;
-- REPEAT
fetch mycur into  tid;
 select CONCAT('当前的订单编号为',tid);

-- end REPEAT;
CLOSE mycur; 
END



执行后为什么影响行数为0
传入的参数执行sql是有数据的

还有怎么不能用alter来修改存储过程?
每次都要删除再重新创建 太麻烦了

------解决方案--------------------
不能用alter是mysql语法
------解决方案--------------------
你这存储过程完全没必要用游标啊


直接
SELECT CONCAT('当前的订单编号为',tid); FROM top_trades WHERE is_transform = 0 AND status = 'WAIT_SELLER_SEND_GOODS' AND channel_code = p_channel_code and DATE_FORMAT(created,'%Y-%m-%d') = p_date;
------解决方案--------------------
贴建表及插入记录的SQL,怎样调用SP的