webForumDet fria alternativet

Hantera värden i stored procedures!

1 svar · 221 visningar · startad av EchO

EchOMedlem sedan aug. 2001112 inlägg
#1

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

LarsGMedlem sedan dec. 200012 464 inlägg
#2

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;
126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)