Regex Oracle正则表达式匹配

Regex Oracle正则表达式匹配,regex,plsql,Regex,Plsql,在where子句中具有类似REGEXP_的Oracle select语句随机失败,错误为ORA-12726:正则表达式中的括号不匹配。当我重新运行查询时,它工作得非常好。我已经验证了DB中的所有正则表达式,并且所有正则表达式在语法上都是正确的。想一想为什么它会失败,以及为什么在我重新运行查询时它会返回结果 SELECT r.* FROM routeuser.ahc_b2b_route r WHERE r.producer ='Facets' AND

在where子句中具有类似REGEXP_的Oracle select语句随机失败,错误为ORA-12726:正则表达式中的括号不匹配。当我重新运行查询时,它工作得非常好。我已经验证了DB中的所有正则表达式,并且所有正则表达式在语法上都是正确的。想一想为什么它会失败,以及为什么在我重新运行查询时它会返回结果

 SELECT
     r.*
 FROM
     routeuser.ahc_b2b_route r
 WHERE
     r.producer ='Facets'
     AND REGEXP_LIKE ('PCP2AAME.2A.zip.end', r.filemask, 'i' )
     ORDER BY
     length(r.filemask) DESC, r.filemask DESC
结果:

Resulting RegEx ^PCP(37|41|47|57|2A)(AME|KEY)[.](37|41|47|57|2A)[.]zip.end$

非常感谢您的帮助

我相信你是在用
[.]
得到一个文字点?尝试使用
\.
进行转义,看看问题是否消失

^PCP(37|41|47|57|2A)(AME|KEY)\.(37|41|47|57|2A)\.zip\.end$

谢谢你会努力的。测试了你建议的新版本,效果很好。