0
我一直困惑的事實使用int變量,MySQL工作臺6.2報告中使用與INT變量LEFT
字符串函數存儲程序語法錯誤:不能在MySQL的左功能
declare lclPos int;
declare lclPart varchar(100);
...
set lclPart = LEFT(lclTemp, lclPos - 1);
錯誤讀取
Syntax error: 'lclPos' (identifier) is not valid input as this point.
但是,如果我的代碼更改爲等效
set lclPart = SUBSTRING(lclTemp, 1, lclPos - 1);
沒有錯誤報告。當使用LEFT
時,常量整數(但不包含局部變量)有效。
這些使用LEFT
函數的例程很久以前就被編碼了,而且我還沒有遇到過這個代碼的任何問題。奇怪的是,儘管事實上報告了語法錯誤,但現有的例程仍在服務器上工作。這讓我認爲這可能是由於MySQL Workbench 6.2中的一個錯誤造成的。服務器運行MySQL 5.5。
有沒有人知道這裏發生了什麼?
好一點。你需要在'select'語句中放置括號。但是,儘管發生了這種變化,問題仍然存在:語法錯誤是相同的。 'SUBSTRING'雖然工作:'set lclPart =(select substring(lclTemp,1,lclPos - 1));' – Gruber 2014-10-02 11:37:42
編輯........... thnx – nesreen 2014-10-02 12:11:53