我有两个存储过程一和二 我需要从程序二调用程序一 在过程二中,我需要从过程1中读取输出变量,以便在一个IF条件下使用它们。
CREATE PROCEDURE `one`(
IN invar_one VARCHAR(255),
OUT outvar_one VARCHAR(255)
)
BEGIN
DECLARE query_result VARCHAR(32);
SELECT hash INTO query_result FROM my_table WHERE hash = invar_one;
IF (invar_one = query_result) THEN
SET outvar_one = "OK";
ELSE
SET outvar_one = "NOT OK";
END IF;
END;
CREATE PROCEDURE `two`(
IN invar_two VARCHAR(255),
OUT outvar_two VARCHAR(255)
)
BEGIN
CALL one(invar_two,@outvar_one);
IF (@outvar_one = "OK") THEN
SET outvar_two = "OK";
ELSE
SET outvar_two = "NOT OK";
END IF;
END;
如果我调用第一个程序(一个)outvar_one结果是正确的
CALL one(:invar,@outvar);
SELECT @outvar as result //result = OK or NOT OK
但如果我调用第二个,则outvar_two结果为空
CALL two(:invar,@outvar);
SELECT @outvar as result //expected OK or NOT OK string but is empty
更新编辑:[已解决]
以上示例运行正常。 我在mi测试脚本中有一个错字。