oracle [^[:print:]]无法过滤 非打印字符

I find that in my oracle database there have some non-printable character, so I try to use regexp_replace to remove the non-printable characters as below:

`select common_name before_value,
regexp_replace(common_name, '[^[:print:]]', '?') after_reg_value
from my_data;`
result as below:
before_value after_reg_value
------------------------------------------
Verm�gensstrukt Verm?gensstrukt
DG HYP �FE DG HYP �FE
KL�KNER KL�KNER
BGF GHYB X2 �H BGF GHYB X2 ?H
7.77% Cr�t Agr 7.77% Cr?t Agr
PUBLIC STO� PUBLIC STO?
M�nchener R�ck A M?nchener R?ck A

from the result we can see that, some non-printable characters are been replace by '?', but others didn't.

select dump(common_name,1016) value
from my_data;

value
----------------------------------------------------------------------------
Typ=1 Len=15 CharacterSet=UTF8: 56,65,72,6d,f6,67,65,6e,73,73,74,72,75,6b,74
Typ=1 Len=11 CharacterSet=UTF8: 44,47,20,48,59,50,20,d6,50,46,45
Typ=1 Len=8 CharacterSet=UTF8: 4b,4c,d6,43,4b,4e,45,52
Typ=1 Len=14 CharacterSet=UTF8: 42,47,46,20,47,48,59,42,20,58,32,20,a3,48
Typ=1 Len=16 CharacterSet=UTF8: 37,2e,37,37,25,20,43,72,e9,64,69,74,20,41,67,72
Typ=1 Len=12 CharacterSet=UTF8: 50,55,42,4c,49,43,20,53,54,4f,c3,3f
Typ=1 Len=16 CharacterSet=UTF8: 4d,fc,6e,63,68,65,6e,65,72,20,52,fc,63,6b,20,41

from the dump result we can find that:
In 'Verm�gensstrukt' the � was translate to 'f6' who can be repleace by '?'
while in 'DG HYP �FE' the � was translate to 'd6, 50', who didn't been find.

Can you help me to find a solution to filter out all the � ?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值