簡體   English   中英

MySQL - 調用存儲過程的問題(#2014:命令不同步)

[英]MySQL - problem to call a stored procedure (#2014 : commands out of sync)

晚上好,

這是我的存儲過程:

    DELIMITER $$
CREATE OR REPLACE PROCEDURE GetStringOptionList (IN p_infoTypeCode VARCHAR(15), IN p_language VARCHAR(1))

BEGIN
    DECLARE v_infotype_code          VARCHAR(15);
    DECLARE v_infotype_description   VARCHAR(50);
    DECLARE v_stringopt_code         VARCHAR(15);
    DECLARE v_stringopt_description  VARCHAR(50);
    DECLARE v_noMoreRow              INTEGER;
    DECLARE cur_stringOptions   
                     
                     CURSOR FOR     
                     SELECT infoType.code as 'infoTypeCode', 
                            case when p_language = 'F' then infoType.frenchDescription
                                 when p_language = 'E' then infoType.englishDescription 
                                 else ''
                            end as 'InfoTypeDescription', 
                            stringOpt.code as 'StringOptionCode', 
                            case when p_language = 'F' then stringOpt.frenchDescription
                                 when p_language = 'E' then stringOpt.englishDescription    
                                 else ''
                            end as 'StringOptionDescription'
                                                FROM InfoType infoType
                                                JOIN StringOptionValue stringOptVal ON infoType.code = p_infoTypeCode AND infoType.code = stringOptVal.codeInfoType
                                                JOIN StringOption stringOpt ON stringOptVal.codeStringOption = stringOpt.code;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_noMoreRow = 0;
    
    SET v_noMoreRow = 1;
    
    OPEN cur_stringOptions;
    LOOPROWS: LOOP

        IF v_noMoreRow = 0 THEN
            CLOSE cur_stringOptions;
            LEAVE LOOPROWS;
        END IF;

        FETCH NEXT FROM cur_stringOptions INTO v_infotype_code, v_infotype_description, v_stringopt_code, v_stringopt_description;
        SELECT v_infotype_code, v_infotype_description, v_stringopt_code, v_stringopt_description;

    END LOOP;
END$$

DELIMITER ;

當我通過 PHPMyAdmin 在 MySQL 下編譯我的存儲過程時,沒問題。 但是當我這樣調用我的存儲過程時:

call GetStringOptionList('EYESCOLOR', 'F')

我收到以下錯誤:

Missing expression (near "ON" at position 25)
#2014 - Commands out of sync; you can't run this command now

為什么 ? 你有解決方案嗎 ?

我已經在控制台模式下嘗試過程序“mysql”。 當我執行“call GetStringOptionList("EYESCOLOR", "F")”時,我得到一個帶有箭頭“->”的空行。

當我通過 PhpMyAdmin 執行調用時,出現以下錯誤:

Missing expression (near "ON" at position 25)
#2014 - Commands out of sync; you can't run this command now

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM