我的问题是这段代码。如何从select中使用变量来调用存储过程?
DELIMITER $$
DROP PROCEDURE IF EXISTS agregar_abono$$
CREATE PROCEDURE agregar_abono(IN pid_cliente BIGINT, IN pfecha_abono DATE, IN pmonto_abono FLOAT)
BEGIN
DECLARE @idabono BIGINT;
-- OTHER CODE ...
SELECT id_abono AS idabono FROM abono WHERE fk_cliente = pid_cliente ORDER BY id_abono DESC LIMIT 1;
SELECT CONCAT('>', idabono);
CALL cobrar_abono(pid_cliente, vid_abono);
END $$
两个SELECT返回的过程:
idabono = 52 --> good! (in the first select)
CONCAT('>', idabono) = null ---> what??
我不知道,因为没有存储在这个变量的结果在存储过程中使用。我使用AS
来存储变量。
存储过程调用的标题是:
CREATE PROCEDURE cobrar_abono(IN pid_cliente BIGINT, IN pid_abono BIGINT)
更换请说明您'vid_abono'变量的值应该怎么样子的呢? – peterm
你想用'CONCAT'做什么? – peterm