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 � ?