आपको अपने SET को ';' से समाप्त करना होगा और, यह देखते हुए कि ग्राहक व्याख्या करता है; सीमांकक के रूप में, आपको सीमांकक को बदलने की आवश्यकता है ताकि आप एक वास्तविक दर्ज कर सकें; प्रक्रिया में।
mysql> delimiter //
mysql> CREATE PROCEDURE SPLIT(IN strToSplit text, IN strDelimiter varchar(1), IN nPartToGet int,OUT strSlice varchar(255))
-> BEGIN
-> SET strSlice = replace(substring(substring_index(strToSplit, strDelimiter,
-> nPartToGet), length(substring_index(strToSplit,strDelimiter,
-> nPartToGet - 1)) + 1), strDelimiter, '');
-> END
-> //
Query OK, 0 rows affected (0.01 sec)
mysql> delimiter ;
mysql> CALL SPLIT('1;2;3;4;5',';',3,@str);
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @str;
+------+
| @str |
+------+
| 3 |
+------+
1 row in set (0.00 sec)
प्रासंगिक दस्तावेज़:http://dev.mysql.com/ doc/refman/5.0/hi/stored-routines.html