Oracle 提取汉子去除非汉子数据(保留标点符号)

 1 --提取汉字,去掉非汉子数据
 2 
 3 --创建函数
 4 Create Or Replace Function f_Getch(Str Varchar2) Return Varchar2 Is
 5   i       Int;
 6   Sub_Str Varchar2(500);
 7   Str2    Varchar2(500);
 8   Str1    Varchar2(500);
 9   Len     Int;
10 Begin
11   Str2 := Str;
12   Select Length(Str2) Into i From Dual;
13   While i > 0 Loop
14     Select Substr(Str2, 1, 1) Into Sub_Str From Dual;
15     Select Lengthb(Sub_Str) Into Len From Dual;
16     If Len = 3 Then
17       Str1 := Str1 || Sub_Str;
18     End If;
19     Select Substr(Str2, 2, Length(Str2)) Into Str2 From Dual;
20     Select Length(Str2) Into i From Dual;
21   End Loop;
22   Return Str1;
23 End;
24 
25 
26 
27 --创建测试数据
28 create table tests(
29 name varchar2(200)
30 );
31 
32 insert into tests (name)
33 values('你a好,你1吃D饭S了s吗');
34 
35 
36 --测试函数
37 select f_Getch(name) from tests

 

转载于:https://www.cnblogs.com/jijinming/p/9458137.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值