SQL-Server 2005 - split funktion

14/12/2009 - 09:17 von Bernd Hass | Report spam
Hallo,

ich brauche in einer gespeicherten Prozedure eine split funktion.
Ich habe lange recherchier und diesen Beitrag gefunden -->

http://raghuveerbabu.blogspot.com/2..._6855.html

Leider funktioniert der Step zwei nicht. Anscheitn ist das ein anderes
SQL-Script.
Kann man das eventuell umbauen so das es auf einem SQL-Server 2005 làuft?

CREATE FUNCTION split_string(input_str IN VARCHAR2,
delim
IN VARCHAR2 DEFAULT ',')
RETURN split_string_type AS
ls_string LONG DEFAULT input_str || delim;
li_no number;
l_data_tab split_string_type := split_string_type();
BEGIN
LOOP
li_no := instr(ls_string, delim);
EXIT WHEN(nvl(li_no, 0) = 0);
l_data_tab.extend;
l_data_tab(l_data_tab.count) := ltrim(rtrim(substr(ls_string,
1,
li_no - 1)));
ls_string := substr(ls_string, li_no + length(delim));
END LOOP;
RETURN l_data_tab;
END;

Viele Grüße

Bernd
 

Lesen sie die antworten

#1 Christoph Ingenhaag
14/12/2009 - 13:45 | Warnen spam
Hallo Bernd,

lies dich mal hier durch: http://www.sommarskog.se/arrays-in-sql-2005.html

Viele Grüße
Christoph

"Bernd Hass" schrieb im Newsbeitrag
news:
Hallo,

ich brauche in einer gespeicherten Prozedure eine split funktion.
Ich habe lange recherchier und diesen Beitrag gefunden -->

http://raghuveerbabu.blogspot.com/2..._6855.html

Leider funktioniert der Step zwei nicht. Anscheitn ist das ein anderes
SQL-Script.
Kann man das eventuell umbauen so das es auf einem SQL-Server 2005 làuft?

CREATE FUNCTION split_string(input_str IN VARCHAR2,
delim
IN VARCHAR2 DEFAULT ',')
RETURN split_string_type AS
ls_string LONG DEFAULT input_str || delim;
li_no number;
l_data_tab split_string_type := split_string_type();
BEGIN
LOOP
li_no := instr(ls_string, delim);
EXIT WHEN(nvl(li_no, 0) = 0);
l_data_tab.extend;
l_data_tab(l_data_tab.count) := ltrim(rtrim(substr(ls_string,
1,
li_no - 1)));
ls_string := substr(ls_string, li_no + length(delim));
END LOOP;
RETURN l_data_tab;
END;

Viele Grüße

Bernd

Ähnliche fragen