3
我正尝试使用translate从VARCHAR2
中删除某些字符。但是,字符160
(某种空间)和243
(段落控制字符?)似乎是INSTR
和TRANSLATE
均无法检测到的“幻影”字符。 LENGTH
的作品,但只有它是字符串中唯一的字符。 LENGTH(CHR(160))
返回1
,但LENGTH(CHR(160) || CHR(110))
也会返回1
,如果您认为它会返回2
。我发现REPLACE
可用于从字符串中去除这些幻像字符,但我喜欢翻译得更好,因为它更易于阅读和维护,而长嵌套或REPLACE
函数只是很麻烦。为什么不翻译某些字符的作品?
有没有其他方法可以从VARCHAR2
中去掉这些字符而不使用替换?
编辑:它看起来在其他地方的字符登记为≤
。但是,当我明确选择它时,Oracle没有显示这个字符的问题。当我选择CHR(243)
时,它只显示块替换字符。此外,this source指向段落字符243更有意义,因为这是一个控制代码。
'ASCIISTR()'可以剥离出他们.. –
@OracleUser这实际上是越来越近了。但是,它不会去除不支持的字符,而是将它们转换为'\ FFFD \ FFFD'。如果它可以转换它们,那么它也可以将它们删除。如果'\ FFFD'在列中是有效的字符串,我不能使用正则表达式。 – oscilatingcretin
你可以给我'dump(your_column)'样本吗? –