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
Post a Comment