您可以使用正則表達式,與the regexp_replace()
function:
regexp_replace(col1, '\.', '(substring).', 1, 1)
如:
select regexp_replace('aa a aaa aa aa a a. bbbbb bb bb bbb bb.',
'\.', '(substring).', 1, 1)
from dual;
REGEXP_REPLACE('AAAAAAAAAAAA.BBBBBBBBBBBBBB.','\.','(SUBST
----------------------------------------------------------
aa a aaa aa aa a a(substring). bbbbb bb bb bbb bb.
或者,如果你只是想匹配a.
,包括模式和替代字符串a
:
regexp_replace(col1, 'a\.', 'a(substring).', 1, 1)
將所有樣本數據通過CTE :
with t (id, col1) as (
select 1, 'aa aa a.bb bb bb.' from dual
union all select 2, 'aa a aa aa a a. bb bb bbb bb.' from dual
union all select 3, 'aa a aaa aa aa a a. bbbbb bb bb bbb bb.' from dual
union all select 4, 'aa a aaa aaa a a aa aa a a. bbbbb bb bb bb bb bbb bb.' from dual
)
select id, regexp_replace(col1, 'a\.', 'a(substring).', 1, 1) as col1
from t;
ID COL1
-- ------------------------------------------------------------------------
1 aa aa a(substring).bb bb bb.
2 aa a aa aa a a(substring). bb bb bbb bb.
3 aa a aaa aa aa a a(substring). bbbbb bb bb bbb bb.
4 aa a aaa aaa a a aa aa a a(substring). bbbbb bb bb bb bb bbb bb.
如果要修改的a.
悉數亮相,然後調整或拆除的發生和位置參數。
如果這是您需要的,您可以使用相同的東西作爲更新的一部分。
請明確表格的樣子,最好是創建表格x作爲select語句,或者至少使用明確的列名稱。然後,請添加預期的輸出。 –
你只改變'a.',其中'a'是一個固定值;或者第一個出現在字符串中的時間段,而不管前後是什麼(如果有的話)? –
固定值 - 第一點和第二點。 –