簡體   English   中英

使用 MySQL 在我的存儲過程中找不到語法 1064 錯誤

[英]Can not find the Syntax 1064 Error in my store procedure using MySQL

我正在創建一個 SP,以便我可以選擇我感興趣的表的字段和第二個參數“ASC”或“DESC”,de SP 將按該字段對表進行排序,也會根據 ASC 或 DESC 對其進行排序關於第二個參數是什么。 但是我找不到語法錯誤,這是一個常規的 1064 錯誤! 我在 MySQL 工作台中運行它

DELIMITER $$
CREATE PROCEDURE `PROCEDUREUNO` (IN field VARCHAR(100),IN ordenamiento CHAR(5))
BEGIN
IF field <> ‘’ THEN
SET @orden = concat(‘ORDER BY ’, field,ordenamiento);
ELSE
SET @orden = ‘’;
END IF;
SET @clausula = concat(‘SELECT * FROM Contrataciones ’, @orden);
PREPARE runSQL FROM @clausula;
EXECUTE runSQL;
DEALLOCATE PREPARE runSQL;
END

END $$

您的存儲過程聲明中有兩個錯誤:

  • 不要使用圓引號'' ,而是使用簡單的引號''
  • 您在聲明的末尾有兩個END關鍵字
DELIMITER $$
CREATE PROCEDURE `PROCEDUREUNO` (IN field VARCHAR(100),IN ordenamiento CHAR(5))
BEGIN
    IF field <> '' THEN
        SET @orden = CONCAT('ORDER BY ', field,ordenamiento);
    ELSE
        SET @orden = '';
    END IF;

    SET @clausula = CONCAT('SELECT * FROM Contrataciones', @orden);

    PREPARE runSQL FROM @clausula;
    EXECUTE runSQL;
    DEALLOCATE PREPARE runSQL;
END $$

此處查看演示。

暫無
暫無

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

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