导出的Sql代码在运行时会出错

时间:2016-12-16 13:09:43

标签: mysql

我有一个sql函数代码,我从其他db导出。但是当我运行它时会出现错误

  

#1064 - 您的SQL语法出错;查看与您的MariaDB服务器版本对应的手册,以获得在''附近使用的正确语法。在第4行

我的sql代码是

    HDNHtml hdn = new HDNHtml();
    Random r = new Random();
    HDNData hdnData = new HDNData();
    hdnData.Data = r.Next().ToString();
    hdnData.HexColor = "#FFCCFF";
    hdn.Add(0,hdnData);
    hdnData = new HDNData();
    hdnData.Data = r.Next().ToString();
    hdnData.Hyperlink = "#GTA";
    hdn.Add(0, hdnData);
    hdnData = new HDNData();
    hdnData.Data = r.Next().ToString();
    hdnData.Hyperlink = "#GTA";
    hdn.Add(0, hdnData);
    hdnData = new HDNData();
    hdnData.Data = r.Next().ToString();
    hdnData.Hyperlink = "#GTA";
    hdn.Add(1, hdnData);
    hdnData = new HDNData();
    hdnData.Data = r.Next().ToString();
    hdnData.Hyperlink = "#GTA";
    hdn.Add(1, hdnData);
    string data = hdn.ToString();
    txtWarnings.Text = data;
    Clipboard.SetText(data);

1 个答案:

答案 0 :(得分:0)

您必须更改分隔符。 试试这个

DELIMITER |

CREATE DEFINER=`root`@`localhost` FUNCTION `getCOGS`(pItemId BIGINT) RETURNS float
    DETERMINISTIC
BEGIN
  declare vRet FLOAT;
  SET vRet = 0.00;
   SELECT SUM(d.quantity*d.unitPrice) / SUM(d.quantity) INTO vRet
    FROM transaction_detail d
    INNER JOIN transaction t ON (t.componentId = d.transactionId AND t.`type` = 'PURCHASE')
    WHERE d.itemId = pItemId AND d.`type` = 1 AND d.accountId = 12;
  RETURN vRet;
END
|
DELIMITER ;

DELIMITER语句将标准分隔符(分号(;)更改为另一个(此处为|)。

查询完毕后,您可以将其设置回;