调用过程语法错误?

时间:2011-09-23 06:38:43

标签: mysql stored-procedures

提供以下存储过程:

DELIMITER $$

DROP PROCEDURE IF EXISTS ric_forn$$
CREATE PROCEDURE  ric_forn (IN nome_forn VARCHAR(100) , OUT msg VARCHAR(100))
BEGIN
DECLARE num_rec INT;

IF (nome_forn = '') THEN 
    SET msg = "Attenzione il nome inserito non è valido !";
END IF;


SELECT COUNT(*) INTO num_rec FROM Fornitori WHERE Des_Fornitore = nome_forn;

IF num_rec = 0 THEN
    SET msg = "Nessun record trovato !";

ELSE

SELECT Id_Fornitore, Des_Fornitore, Ind_Fornitore FROM Fornitori WHERE Des_Fornitore = nome_forn;
    SET msg = "Records trovati:";

END IF;

END$$

DELIMITER ;

如何运行它?

我试过了:

call ric_forn (Des_Fornitore,msg);

call ric_forn (nome_forn ,msg);

call ric_forn ('' ,msg);

call ric_forn ('EAN srl' ,msg);  

'EAN srl'是一个值

但我总是收到错误,例如Unknown列nome_forn或nknown列Des_Fornitore..etc

1 个答案:

答案 0 :(得分:1)

尝试以这种方式运行SP -

SET @nome_forn = 'nome_forn'; --set your value
SET @msg = 'msg'; --set your value
CALL ric_forn(@nome_forn, @msg);

SELECT @msg; -- output