Oracle 12c-用任何内容替换字符串中的字符

时间:2018-06-25 21:23:02

标签: oracle select oracle12c

我正在尝试将破折号替换为空格,并将撇号替换为定义为VARCHAR2(6)的列中的任何内容,但是我的方法是将两者都替换为最多6个字符的空格。

示例"ABC-""ABC'"需要分别转换为"ABC ""ABC"

我正在使用以下内容:

select UPPER(RPAD(REPLACE(REPLACE(NVL('ABC-',' '),'-',' '),'''',''), 6,' '))
from dual

这将返回"ABC ",但应返回"ABC "

select UPPER(RPAD(REPLACE(REPLACE(NVL('ABC''',' '),'-',' '),'''',''), 6,' '))
from dual

这将返回"ABC ",但应返回"ABC"

2 个答案:

答案 0 :(得分:0)

这对您有用吗?

SQL>  select regexp_replace('ABC''','''','') from dual;

REG
---
ABC

SQL> select regexp_replace('ABC-','-',' ') from dual;

REGE
----
ABC

答案 1 :(得分:0)

使用翻译 official doc

TRANSLATE('abc-''','-''',' ')