mysql stored procedure declaration throws error on execution -


i"m continiously receiving error when trying create stored procedure. i'm trying write procedure splits comma delimited string. similar explode. feel i'm close.

this error

you have error in sql syntax; check manual corresponds mysql server version right syntax use near 'declare start_pos, end_pos int; set start_pos = 1; set end_pos = locat' @ line 6

i copied logic sql server example , did best translate mysql syntax.

this entire procedure start finish. i'm hoping trained eye can explain why i'm getting error.

delimiter $$  create procedure split_string (in p_string_to_split varchar(255),in p_delimiter char(1) )  begin         drop temporary table if exists split_channel_ids;     create temporary table split_channel_ids (p_channel_id int);      declare start_pos, end_pos int;     set start_pos = 1;     set end_pos = locate(p_delimiter, p_string_to_split);      while (start_pos < char_length(p_string_to_split) + 1)         if (end_pos = 0)             set end_pos = char_length(p_string_to_split) + 1;         end if;         --- insert split_channel_ids (p_channel_id)           --- values(substring(p_string_to_split, start_pos, end_pos - start_pos)) ;         set start_pos = end_pos + 1;         set end_pos = locate(p_delimiter, p_string_to_split, start_pos);     end while;      -- select * imob_users;     select * split_channel_ids; end $$ delimiter ; 

declare statements (in mysql) must @ beginning of enclosing begin...end block.

in ms sql, can anywhere; annoying there because not have block scope, have procedure scope, can't "re-use" names in independent blocks.


Comments