我正在尝试将破折号替换为空格,并将撇号替换为定义为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"
答案 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-''','-''',' ')