在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$
对此表示感谢。
答案 0 :(得分:1)
我相信您正在使用[.]
来获取文字点?尝试改用\.
进行转义,看看问题是否消失。
^PCP(37|41|47|57|2A)(AME|KEY)\.(37|41|47|57|2A)\.zip\.end$