junsansi的博客
自我介绍
切换风格
订阅我的Blog
博客日历
文章归档...
最新发表...
最新评论...
最多阅读文章...
最多评论文章...
博客统计...
网站链接...
资源
===========================================================
ORACLE从字符串中过滤出数字~~
===========================================================

方法1:

Select translate('254名字性别介绍','1234567890名字性别介绍’','1234567890') From dual

方法2:

看俺的java实现

首先:
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 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';

再然后,无敌啦~~~
Select java_filterStr2Num('254名字性345345别介绍') From dual;


junsansi 发表于:2007.04.08 20:56 ::分类: ( 三思笔记 ) ::阅读:(408次) :: 评论 (1) :: 引用 (0)
re: ORACLE从字符串中过滤出数字~~ [回复]

方法2中public static boolean isNumeric这个方法目前是用exception的方式判断是否数字,事实上这可能会带来内存占用增加的问题,比例好的方式应该是用正则,但是这需要jdk1.5以上版本支持,oracle9i及以前版本默认是1.2,1.3都不支持该方法,如果想使用的话需要自已安装jdk1.5

君三思 评论于:2007.04.08 21:02

发表评论
标题

在此添加评论

称呼

邮箱地址(可选)

个人主页(可选)

authimage