Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to split comma separated string inside stored procedure?

How to split comma separated string into strings inside store procedure and insert them into a table field?

Using Firebird 2.5

like image 648
Yordan Yanakiev Avatar asked Nov 08 '11 20:11

Yordan Yanakiev


1 Answers

Here a sample how to split the string and write the sub-strings into a table:

create procedure SPLIT_STRING (
  AINPUT varchar(8192))
as
declare variable LASTPOS integer;
declare variable NEXTPOS integer;
declare variable TEMPSTR varchar(8192);
begin
  AINPUT = :AINPUT || ',';
  LASTPOS = 1;
  NEXTPOS = position(',', :AINPUT, LASTPOS);
  while (:NEXTPOS > 1) do
  begin
    TEMPSTR = substring(:AINPUT from :LASTPOS for :NEXTPOS - :LASTPOS);
    insert into new_table("VALUE") values(:TEMPSTR);
    LASTPOS = :NEXTPOS + 1;
    NEXTPOS = position(',', :AINPUT, LASTPOS);
  end
  suspend;
end
like image 146
Michael Avatar answered Nov 15 '22 19:11

Michael