ORA-12733: regular expression too long
Cause: The operation failed because the regular expression it used exceeds the maximum supported size.
Action: Use a shorter regular expression.
ORA-12733 这个错误基本上是由单个字符正则表达式过长而引起的。
您对正则表达式的操作太长,已超出上限。必要的字符数应至少可以容下您的输入值,所以必须限制正则表达式的长度。
1. 对于过滤条件过多的情况,可以考虑添加索引或者将查询条件字段拆分来减小过滤条件数量,同时做跨列优化把OR赋值为AND,这样可以减小查询字符数。
2. 对于regexp_like函数,可以使用PATINDEX函数来替代它来降低字符数量限制;
3. 如果错误仍旧出现,可以通过更改Max_regexp_length的参数,由初始的1000增大为一个足够大的值来解决问题。