Decode360's Blog

          業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            302 隨筆 :: 26 文章 :: 82 評論 :: 0 Trackbacks

          http://zhouwf0726.itpub.net/post/9689/191406

          ?

          -- 該腳本可以直接拷貝運行

          -- 現(xiàn)有字符串 '23456 中國 3-00=.,45' ,想得到結果 2345630045

          ?

          ?

          -- 方法一: translate 函數(shù)

          select translate( '23456 中國 3-00=.,45' , '0123456789' || '23456 中國 3-00=.,45' , '0123456789' ) from dual;

          ?

          ?

          -- 方法二:自定義函數(shù)。

          create or replace function f_filter_str(var_str varchar ) return varchar

          is

          var_str_new varchar2 ( 2000 );

          begin

          for i in 1 ..length(var_str) loop

          if ascii(substr(var_str,i, 1 ))>= 48 and ascii(substr(var_str,i, 1 ))<= 57 then

          var_str_new := var_str_new || substr(var_str,i, 1 );

          end if ;

          end loop ;

          return var_str_new;

          end f_filter_str;

          /

          ?

          select f_filter_str( '23456 中國 3-00=.,45' ) from dual;

          ?

          ?

          -- 方法三:正則表達式

          --oracle10g 以上版本

          ?

          select regexp_replace( '23456 中國 3-00=.,45' , '[^0-9]' ) from dual;

          ?

          ?

          -- 方法四:

          ?

          create or replace and compile java source named stringutil as

          ?

          import Java.io.*;

          import Java.sql.*;

          ?

          public class StringUtil

          {

          public static String filterStr2Num( String str){

          String tmpstr = str;

          String savestr;

          String result = "";

          for ( int i= 0 ;i<tmpstr.length();i++){

          savestr = tmpstr.substring(i,i+ 1 );

          if (StringUtil.isNumeric(savestr)){

          result +=savestr;

          }

          ?

          }

          return result ;

          ?

          }

          ?

          public static String filterStr2Str( String str){

          String tmpstr = str;

          String savestr;

          String result = "";

          for ( int i= 0 ;i<tmpstr.length();i++){

          savestr = tmpstr.substring(i,i+ 1 );

          if (!StringUtil.isNumeric(savestr)){

          result +=savestr;

          }

          ?

          }

          return result ;

          ?

          }

          ?

          ?

          public static boolean isNumeric( String str){

          try{

          Integer.valueOf(str);

          return true ;

          }catch( Exception e){

          return false ;

          }

          ?

          }

          ?

          }

          ?

          -- 然后:

          create or replace function Java_filterStr2Num(str In Varchar ) return varchar2 as

          LANGUAGE JAVA

          NAME 'StringUtil.filterStr2Num(java.lang.String) return java.lang.String' ;

          ?

          create or replace function Java_filterStr2Str(str In Varchar ) return varchar2 as

          LANGUAGE JAVA

          NAME 'StringUtil.filterStr2Str(java.lang.String) return java.lang.String' ;

          ?

          -- 再然后

          Select java_filterStr2Num( '254 名字性 345345 別介紹 ' ) From dual; -- 取數(shù)字

          Select java_filterStr2Str( '254 名字性 345345 別介紹 ' ) From dual; -- 取文字

          ?

          ?




          -The End-

          posted on 2008-09-06 19:27 decode360-3 閱讀(153) 評論(0)  編輯  收藏 所屬分類: SQL Dev
          主站蜘蛛池模板: 巨鹿县| 潜山县| 衡南县| 阳高县| 江口县| 霍邱县| 郧西县| 筠连县| 屯留县| 诸暨市| 宁乡县| 蒙山县| 察雅县| 宜州市| 年辖:市辖区| 曲周县| 河西区| 历史| 印江| 鄂州市| 佳木斯市| 乳山市| 延寿县| 宽城| 中山市| 清新县| 禄劝| 莒南县| 元谋县| 南康市| 龙江县| 岳阳县| 汉阴县| 牡丹江市| 小金县| 客服| 邓州市| 四川省| 水富县| 白河县| 凤庆县|