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

本文介绍了一个用于从字符串中提取汉字并去除非汉字字符的PL/SQL函数f_Getch。通过创建并使用该函数,可以有效地实现字符串中汉字的筛选。此外,还展示了如何创建测试数据以及调用此函数进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值