Hur gör jag när jag vill splitta upp en sträng som jag skickar in i en stored procedure.
Strängen kan se ut tex så här: 49;382;239;383
jag vill alltså splitta upp strängen i stored proceduren och lagra dessa värden separat...
Hur gör jag då??
@EchO
1 svar · 221 visningar · startad av EchO
Hur gör jag när jag vill splitta upp en sträng som jag skickar in i en stored procedure.
Strängen kan se ut tex så här: 49;382;239;383
jag vill alltså splitta upp strängen i stored proceduren och lagra dessa värden separat...
Hur gör jag då??
@EchO
Det beror på vilken dbms du använder.
Jag har aldrig sett någon färdig funktion som motsvarar split utan du får förmodligen skriva en loop och däri leta reda på ;
Det finns olika stränghanteringsfunktioner, tex position för att returnera positionen för ett visst tecken i en sträng men som sagt så skiljer det sig mellan dbms.
-- psmkod
declare offset integer default 1;
declare length,we integer ;
declare word varchar(40);
set length = char_length(csv_string);
while offset <= length do
set we = position(";" in substring(csv_string from offset));
if we = 0 then
set we = length - offset + 1;
end if;
set word = substring(csv_string from offset for we - 1);
-- hantera word
set offset = offset + we;
end while;