我需要一个简单的替换函数,它将以分号分隔的字符串列表替换为引用的逗号分隔字符串。
' 123;性Asd; _p1;'替换为' 123',' Asd',' _P1'
试过这个,但最后一个字符串错过了引号,字符串也可以有其他字符。
SELECT REGEXP_REPLACE('123;234;345;123','([[:alnum:]]+);', '''\1'',') List FROM DUAL;
答案 0 :(得分:1)
我认为你不需要regexp_replace
,一个简单的replace
就足够了。您似乎只想用字符串替换分号"','"然后在字符串之前和之后添加单引号。
select q'{'}' ||
replace( '123;234;345;123', ';', q'{','}' ) ||
q'{'}'
from dual
答案 1 :(得分:0)
SELECT REGEXP_REPLACE( REGEXP_REPLACE('123;234;345;123','([[:alnum:]]+);', '''\1'','), ',([[:alnum:]]+)', ',''\1''') FROM DUAL;