大家好,我在开发中遇到一个问题,希望大家帮忙,问题描述如下:我在mysql中写了一个存储过程,这个存储过程有输入输出参数,想用shell调用,为输入参数赋值并得到输出参数,现在的问题是得不到输出参数,请大家指点如何能得到输出参数,谢谢!
Proc代码:DELIMITER $$DROP PROCEDURE IF EXISTS `myown`.`SP_HA`$$CREATE DEFINER=`alex`@`192.168.54.26` PROCEDURE `sp_ha`(IN ID INT,OUT FLAG INT)
BEGIN
INSERT INTO HA VALUES (ID);
SET FLAG = 3;
select FLAG;
END$$DELIMITER ;
Shell代码:#!/bin/sh#------------------------------------------------------------------------------
# 第一步: 接收参数
#------------------------------------------------------------------------------
ProgName=$1
Para=$2 Para= mysql -u alex -palex -h 192.168.54.xx myown -e "call sp_ha($ProgName,@$Para)";echo $Para
忽略乱七八糟的变量名,现在这个.sh可以执行并能成功插入数据到表中,但是shell中得不到OUT参数,请大家帮忙,谢谢!
Proc代码:DELIMITER $$DROP PROCEDURE IF EXISTS `myown`.`SP_HA`$$CREATE DEFINER=`alex`@`192.168.54.26` PROCEDURE `sp_ha`(IN ID INT,OUT FLAG INT)
BEGIN
INSERT INTO HA VALUES (ID);
SET FLAG = 3;
select FLAG;
END$$DELIMITER ;
Shell代码:#!/bin/sh#------------------------------------------------------------------------------
# 第一步: 接收参数
#------------------------------------------------------------------------------
ProgName=$1
Para=$2 Para= mysql -u alex -palex -h 192.168.54.xx myown -e "call sp_ha($ProgName,@$Para)";echo $Para
忽略乱七八糟的变量名,现在这个.sh可以执行并能成功插入数据到表中,但是shell中得不到OUT参数,请大家帮忙,谢谢!
是不是改成这样: mysql -u alex -palex -h 192.168.54.xx myown -e "call sp_ha($ProgName,@$Para); select @$Para";