1

我正在尝试加快使用包含 Near 的查询和使用 regexp_like 的查询。初始的 Contains Near 查询运行大约需要 45 分钟。Clob Column 包含大型“文档”并且是域索引的。

初始查询:

SELECT column1
FROM TEST
WHERE CONTAINS(column1,'{NEAR(quick,fox, lazy), 3, FALSE}')>0;

建议查询:

SELECT column1
FROM TEST
WHERE REGEXP_LIKE(column1, '(\b(quick|fox|lazy)(?:\W+\w+){1,6}?\W(quick|fox|lazy)(?:\W+\w+){1,}?\W(quick|fox|lazy)\b)','i')

我从这里得到了原始的正则表达式语法: https ://www.regular-expressions.info/near.html 。

问题: 我让正则表达式代码在 html https://www.regextester.com中工作,但是当我把它放在 Oracle 中时,它什么也没找到。我的语法有什么问题?我想不通。Oracle 是否以不同方式处理 REGEXP?

4

1 回答 1

1

亚历克斯,你完全正确。我不知道如何选择正确的答案。

我的问题显然是我使用了 Oracle 无法识别的正则表达式参数。因此,虽然它在https://www.regextester.com上工作,但它在 Oracle 中却无法工作,因为我使用的大部分内容在 Oracle 中都不能用于正则表达式。我真的认为甲骨文应该扩展它认可的正则表达式代码。这真是令人沮丧。

于 2018-11-26T18:16:24.910 回答