Oracle - 确定正则表达式支持的最大大小

Fru*_*ner 6 regex oracle

我有一个正则表达式抛出ORA-12733,"正则表达式太长".如何确定支持的最大大小是多少?

仅供参考:违规正则表达式为892个字符.它是一个生成的正则表达式,所以我可以改变生成和执行它的方式,但我想知道在更改生成和执行方式之前,最大大小的限制是什么.

(运行Oracle 10.2g)

更新:

如果它取决于实际的正则表达式,这里是它的开头(剩下的就是重复的同一个东西,在^和之间有不同的值$):

(^R_1A$|^R_2A$|^R_3A$|^R_4A$|^R_4B$|^R_5A$|^R_5B$...

Ian*_*ter 8

查看正则表达式函数的文档,REGEXP_SUBSTR,REGEXP_INSTR和REGEXP_REPLACE,它具有以下模式引用:

pattern是正则表达式.它通常是文本文字,可以是任何数据类型CHAR,VARCHAR2,NCHAR或NVARCHAR2.它最多可包含512个字节.如果pattern的数据类型与source_char的数据类型不同,则Oracle Database会将pattern转换为source_char的数据类型.有关运算符的列表,您可以在模式中指定`**

取自这里