Regex 如何使用正则表达式简化此语句?
请假设将以下语句存储在Regex 如何使用正则表达式简化此语句?,regex,oracle,plsql,Regex,Oracle,Plsql,请假设将以下语句存储在VARCHAR2中: UPDATE PLUTO SET FIELD1='',FIELD2='',FIELD3='TIGER',FIELD4='',FIELD5='SCOTT'; 我想编写一个正则表达式,通过删除所有设置为NULL的更新来简化前面的语句,因为它们是无用的(NULL是默认语句),如下所示: UPDATE PLUTO SET FIELD3='TIGER', FIELD5='SCOTT'; 你能帮我吗 我对正则表达式从来没有这么好过 我相信这会满足您的需求,但可
VARCHAR2
中:
UPDATE PLUTO SET FIELD1='',FIELD2='',FIELD3='TIGER',FIELD4='',FIELD5='SCOTT';
我想编写一个正则表达式,通过删除所有设置为NULL的更新来简化前面的语句,因为它们是无用的(NULL是默认语句),如下所示:
UPDATE PLUTO SET FIELD3='TIGER', FIELD5='SCOTT';
你能帮我吗
我对正则表达式从来没有这么好过 我相信这会满足您的需求,但可能有更好的方法,因为我也不是regexp的最佳选择:
regexp_replace(regexp_replace(field, 'FIELD[0-9]+=''''[,]*', ''), '[, ]+;', ';')
这个怎么样?它将删除所有字段#=“”(带或不带final,)
下面是正则表达式备忘单:
以及Oracle正则表达式的良好资源
是否要将数据库查询存储在数据库中?是!:-)一个鸡蛋在另一个鸡蛋里!:-)如果最后一个字段为空,这将在行尾留下一个尾随“,;”。非常感谢您的解决方案!;-)
SELECT
REGEXP_REPLACE(
REGEXP_REPLACE(
'UPDATE PLUTO SET FIELD1='''',FIELD2='''',FIELD3=''TIGER'',FIELD4='''',FIELD5=''SCOTT'',FIELD9='''';',
'(FIELD[0-9]+=(?'''',*))','') ,
'[, ]+;',';')
from dual