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来修改存储过程?
每次都要删除再重新创建 太麻烦了
(
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来修改存储过程?
每次都要删除再重新创建 太麻烦了
直接
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有数据
执行存储过程就没有数据呢?