【发布时间】:2017-12-26 08:48:55
【问题描述】:
我在尝试查找数据库中是否已存在某些 ID 时收到 ORA-12733:正则表达式太长错误。
regexp_like (','||a.IDs||',',',('||replace(b.IDs,',','|')||'),')
a.ID 和 b.ID 的格式类似于 id=16069,16070,16071,16072,16099,16100。
我会将逗号替换为 |在 b 所以它会告诉我是否有任何数字匹配。 a.IDs 和 b.IDs 的长度可能因不同的查询而异。 Oracle regexp_like 限制只有 512。谁知道是否有其他可能的解决方案?
【问题讨论】:
-
最佳解决方案:不要将逗号分隔的列表存储在文本字符串中。
-
你可以写一个存储函数来做检查
标签: oracle regexp-like