Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何使用正则表达式简化此语句?_Regex_Oracle_Plsql - Fatal编程技术网

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