mysql使用存储过程输出变量导致另一个存储过程

时间:2016-12-28 17:57:17

标签: mysql stored-procedures

我有两个存储过程一和二 我需要从程序二调用程序一 在过程二中,我需要从过程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测试脚本中有一个错字。

0 个答案:

没有答案