Johan,

    Here is a procedure that I use to break up a comma delimited string into
it's component pieces.  It should be a simple thing to replace the ',' with a
'.' and use it to do as you need.  You'll have to call it 4 times for each IP
address and then convert the result to a number, but that is not very hard.

procedure extract_next(str in varchar2, position in out number, result out
varchar2) is
   a number;
  begin
   a := instr(substr(str,position),',',1);
   if(a = 0) then a := length(substr(str, position));
   end if;
   result := substr(str, position, instr(substr(str,position),',',1)-1);
   a := instr(substr(str,position),',',1);
   if(a = 0) then position := length(str)+1;
   else position := position + a;
   end if;
  end;

str = the original string ('127.0.0.1')
position is a number that holds the last location where a ',' or '.' in your
case was found.  It should start at 0.
result is the piece of the string between the ','s or '.'s

Dick Goulet

PS: no warranty, guarantee, or fitness for use implied.  Use at your OWN risk.

____________________Reply Separator____________________
Author: Johan Muller <[EMAIL PROTECTED]>
Date:       10/16/2002 12:32 PM

Help!

Anybody have a quick and dirty to parse the 4 octets of a typical IP address
into 4 separate values. I will insert these into a table where  database
checks may  verify that the data is in fact a number and also part of a
valid ip range (the second thru fourth octets cannot be higher than 255. The
source data is very dirty and often fat-fingered, hence the painful
solution):

e.g.: 127.0.0.1 into 127 (val 1), 0 (val 2), 0 (val 3) and 1 (val 4).

I have used various flavors of substr/instr to unravel this, but the varying
length of the octets (up to 3 bytes) defeats my rudimentary sql coding
skills. I probably have to attack the IP with decode, and any input will be
very welcome.

Running V 8.1.6.

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Johan Muller
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: 
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to