Oracle 如下图 怎么样保留name字段里的数字把其他字母和空和符号去掉,这只是个例子,我要改的文件很大
发布网友
发布时间:2022-04-13 15:46
我来回答
共2个回答
热心网友
时间:2022-04-13 17:16
保留汉字的话,可以用ASCII码来判断,例子如下
使用ASCII码来区分中文和其它字符,中文的ASCII码值的范围是45217~63486,根据这个来实现,这种方式可以完美区分中文字符和其它字符。
create or replace function getCustText(custName varchar2) return varchar2 is
Result varchar2(100);
tmp_custName varchar2(100);
count_str number;
i number:=1;
str_ascii number;
current_char varchar2(10);
begin
select length(custName) into count_str from al;
while i<count_str loop
current_char:=substr(custName,i,1);
select ASCII(current_char) into str_ascii from al;
if str_ascii>45216 then
tmp_custName:=tmp_custName||current_char;
end if;
i:=i+1;
end loop;
Result:=tmp_custName;
return(Result);
end getCustText;
通用的方式则是用正则表达式
热心网友
时间:2022-04-13 18:34
Oracle 10g支持正则表达式