Home » SQL & PL/SQL » SQL & PL/SQL » Re: Find Numbers
Re: Find Numbers [message #1834] Mon, 03 June 2002 09:48
Mahesh Rajendran
Messages: 10707
Registered: March 2002
Location: oracleDocoVille
Senior Member
Account Moderator
hello,
I have a possible workaround.
you need to create 2 functions.
pls let me know, it this is not working for you.


 SQL> get is_number;
  1  Create or Replace
  2  Function IS_number
  3   (vString       in Varchar2,
  4    nStart_pos    in Number,
  5    nStop_Pos     in Number)
  6  Return varchar2 is
  7  nTest_Num     Number := 0;
  8  nbegin_pos    Number := Nvl(nStart_pos, 1);
  9  nEnd_Pos      Number :=  nvl(nStop_Pos, Length(vString));
 10  vSuccess_Flag Varchar2(1);
 11  Begin
 12     Begin
 13        IF vString is Null Then
 14           nTest_Num := 'test';
 15        End IF;
 16        nTest_Num     := To_Number(substr(vString, nBegin_Pos, nEnd_Pos));
 17        vSuccess_Flag := 'Y';
 18      Exception
 19          When Invalid_Number Then
 20               vSuccess_Flag := 'N';
 21          When Others Then
 22               vSuccess_Flag := 'N';
 23     END;
 24     Return vSuccess_Flag;
 25* END;
SQL> /

Function created.

SQL> get rip_number;
  1  create or replace function rip (f_in varchar2)
  2  return    varchar2 as
  3  v_in      varchar2(30);
  4  opt       varchar2(30);
  5  retval    varchar2(30);
  6  dumm      varchar2(30);
  7  begin
  8  v_in:=replace(replace(f_in,'0',' '),' ');
  9  for mag in 1..length(v_in) loop
 10     opt:=substr(v_in,mag,1);
 11     if is_number(opt,1,1)='Y'  then
 12     dumm:=dumm||opt;
 13     end if;
 14     end loop;
 15  return dumm;       
 16* end;
SQL> /

Function created.

SQL> select * from test10;

COL1
------------------------------
0078965432
24579893
END 23794832
IN 0078434521 MIDDLE

<b>By makin use of the functions created above </b>

SQL> select rip(col1) from test10;

RIP(COL1)
----------------------------------------------------------------------------------------------------
78965432
24579893
23794832
78434521

SQL> 

Previous Topic: how to delete several columns in a table?
Next Topic: Creating ORACLE VIEW in a VIEW
Goto Forum:
  


Current Time: Thu Apr 18 20:39:55 CDT 2024