我在表格中有一个 varchar2 列,其中包含一些如下所示的条目 TEMPORARY-2 TIME ECS BOUND -04-Insuficient Balance 我想更新这些条目并使其成为 TEMPORARY-2 X 。出路是什么?
答案 0 :(得分:1)
要完成此任务,您可以使用substr()
等字符函数,
replace()
或正则表达式函数 - 例如regexp_replace()
。
SQL> with t1(col) as(
2 select 'TEMPORARY-2 TIME ECS BOUND -04-Insuficient Balance'
3 from dual
4 )
5 select concat(substr( col, 1, 11), ' X') as res_1
6 , regexp_replace(col, '^(\w+-\d+)(.*)', '\1 X') as res_2
7 from t1
8 ;
结果:
RES_1 RES_2
------------- -------------
TEMPORARY-2 X TEMPORARY-2 X
因此,您的update
声明可能如下所示:
update your_table t
set t.col_name = regexp_replace(col_name, '^(\w+-\d+)(.*)', '\1 X')
-- where clause if needed.