在MySQL中dbms_output.put_行等效于什么,或者如何在MySQL中显示消息

在MySQL中dbms_output.put_行等效于什么,或者如何在MySQL中显示消息,mysql,stored-procedures,Mysql,Stored Procedures,导致 错误1328(HY000):获取变量的数量不正确 答案是肯定的 USE `doc1vault`; DROP procedure IF EXISTS `EIN_ACCESS1`; DELIMITER $$ USE `doc1vault`$$ CREATE PROCEDURE `EIN_ACCESS1`(/*IN my_EIN VARCHAR(350),*/ IN my_ICODesc VARCHAR(200)) BEGIN DECLARE finished INTEGER

导致

错误1328(HY000):获取变量的数量不正确

答案是肯定的

USE `doc1vault`;
DROP procedure IF EXISTS `EIN_ACCESS1`;

DELIMITER $$
USE `doc1vault`$$
CREATE PROCEDURE `EIN_ACCESS1`(/*IN my_EIN VARCHAR(350),*/ IN my_ICODesc VARCHAR(200))
    BEGIN
    DECLARE finished INTEGER DEFAULT 0;
    DECLARE EINLIST varchar(200)  DEFAULT 0;
    DECLARE cur1 CURSOR FOR SELECT * FROM vault_databases where ico_description like CONCAT('%' , my_ICODesc , '%');
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;
        get_rec:LOOP
        FETCH cur1 INTO EINLIST;
            IF finished = 1;
        SELECT 'Record Finished'; /*Gives error hewe*/
        LEAVE get_rec;
        END IF;
        END LOOP get_rec;
        END$$
DELIMITER ;

问题在于光标。
FETCH
无法确定变量的数量,因为它在光标中使用了
SELECT*
USE `doc1vault`;
DROP procedure IF EXISTS `EIN_ACCESS1`;

DELIMITER $$
USE `doc1vault`$$
CREATE PROCEDURE `EIN_ACCESS1`(/*IN my_EIN VARCHAR(350),*/ IN my_ICODesc VARCHAR(200))
 BEGIN
    DECLARE finished INTEGER DEFAULT 0;
    DECLARE EINLIST varchar(400)  DEFAULT 0;
    DECLARE cur1 CURSOR FOR SELECT ico_index FROM vault_databases where 
    ico_description      like CONCAT('%' , my_ICODesc , '%');

    DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;

    OPEN cur1;
    get_rec:LOOP

        FETCH cur1 INTO EINLIST;

        IF finished = 1 then
            SELECT 'Record Finished';
            LEAVE get_rec;
        END IF;
    END LOOP get_rec;

END$$
DELIMITER ;