iT邦幫忙

0

MySQL stored procedure Variable assignment 問題

create procedure x (IN InXpose VARCHAR(50))
begin
set @purpose = InXpose;
end;

執行, 給予 parameter 值 "aaa"後, 出現 error

Procedure execution failed
1054 - Unknown column 'InXpose' in 'field list'

小弟初學 stored procedure, 覺得可能是 variable assignment 觀念上的錯誤問題, 懇請各位懂得 stored procedure 的大大指點一下, 謝謝。

看更多先前的討論...收起先前的討論...
小魚 iT邦高手 1 級 ‧ 2017-06-16 23:18:30 檢舉
給予 parameter 值 "aaa"
請問你的語法是什麼?
我是用 Navicat 編寫的, 執行時 Navicat 會 popup 一個視窗要求輸入 parameter 的值
我的輸入值是 "aaa" (" 是需要輸入的)
問題終於解決:Navicat 有一項非常不便的輸入便是要將 parameter 的設定與 procedure 的 coding 分開輸入, 即是你只會看到 Begin ..... End 的內容, create procedure x (......) 那一個 coding 是看不到的 , parameter 的設定 更要在另一個輸入欄位才看到 , 我該死的 monitor 又小, 我該死的眼睛又開不到 IN ` InXpose` 中多了一個空格 ...... 磨了一整天...... 將整篇 code paste 到 notepad 才發現空格, .....唉呀.....
小魚 iT邦高手 1 級 ‧ 2017-06-17 18:39:07 檢舉
你的文章裡面並沒有`這個符號(或是被it邦處理掉了),下次可以參照旁邊的markdown語法的說明,告訴他這是sql語法,難怪我們都看不到問題。
空格的錯誤所有的程式語言都會有,要小心,很多Bug都發生在不該發生的地方。

1 個回答

我要發表回答

立即登入回答