2010-11-23 54 views
0
CREATE FUNCTION testing(id INT, dsc TEXT) RETURNS TEXT 
BEGIN 
DECLARE ntxt TEXT; 
SET ntxt = dsc; 
RETURNS ntxt; 
END; 

您的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,在第3行'TEXT'附近使用正確的語法。用戶定義函數的問題

我在這裏錯過了什麼?

回答

1
  1. 你忘了更改分隔符
  2. RETURN有一個額外的S

這並不工作:

DELIMITER // 

CREATE FUNCTION testing(id INT, dsc TEXT) RETURNS TEXT 
BEGIN 
    DECLARE ntxt TEXT; 
    SET ntxt = dsc; 
    RETURN ntxt; 
END// 
0

您可能忘了在腳本的開頭添加DELIMITER $$(標準分隔符是;,它也用於過程/函數中)。例如,

DELIMITER $$ 
[CREATE FUNCTION ...... ] 
$$ 
DELIMITER ; 
+1

爲什麼執着於$$編碼器當單一的非;會做 - 像一個#? – 2010-11-23 15:34:42

+0

@ f00,當替代分隔符不可能出現在其他地方時,我想你會感覺更好。 – 2010-11-23 15:36:21