Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Convert string to an Array

Status
Not open for further replies.

getjbb

MIS
Jun 4, 2003
139
US
Sorry, forgot subject line, again..

I have a string:

,off,on,off

I want to parse the data into an array. I found and tweaked (bolded) the following code, but the result was:

<blank line> (think this is coming from the first ',')
off
on
off
---------------------------------------
FUNCTION SPLIT (p_in_string VARCHAR2, p_delim VARCHAR2) RETURN t_array
IS

i number :=0;
pos number :=0;
lv_str varchar2(50) := p_in_string;

strings t_array;

BEGIN

-- determine first chuck of string
pos := instr(lv_str,p_delim,1,1);

-- while there are chunks left, loop
WHILE ( pos != 0) LOOP

-- increment counter
i := i + 1;

-- create array element for chuck of string
strings(i) := substr(lv_str,1,pos-1);

-- remove chunk from string
lv_str := substr(lv_str,pos+1,length(lv_str));

-- determine next chunk
pos := instr(lv_str,p_delim,1,1);

-- no last chunk, add to array
IF pos = 0 THEN

strings(i+1) := lv_str;

END IF;

END LOOP;

-- return array
RETURN strings;

END SPLIT;

-----------------------------------------------
getjbb
 
That sounds quite reasonable because effectively you have an empty element at the start of your string. You could just trim off the leading ',' with something like:

lv_str varchar2(50) := ltrim(p_in_string, ',');

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top