Oracle RegEx匹配

时间:2018-09-12 13:16:55

标签: regex plsql

在where子句中具有REGEXP_LIKE的Oracle select语句随机失败,错误为ORA-12726:正则表达式中的括号不匹配。当我重新运行查询时,它运行完美。我已经验证了数据库中的所有正则表达式,并且语法正确。当我重新运行查询时,有什么想法为什么它会失败以及为什么它会返回结果。

 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$

对此表示感谢。

1 个答案:

答案 0 :(得分:1)

我相信您正在使用[.]来获取文字点?尝试改用\.进行转义,看看问题是否消失。

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