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

标签 regex oracle

我有一个正则表达式抛出 ORA-12733,“正则表达式太长”。如何确定支持的最大尺寸是多少?

仅供引用:有问题的正则表达式是 892 个字符。这是一个生成的正则表达式,因此我可以更改生成和执行它的方式,但是在更改生成和执行方式之前,我想知道最大大小的限制是什么。

(运行 Oracle 10.2g)

更新:

如果它取决于实际的正则表达式,这是它的开始(其余的只是重复相同的事情,在 ^$ 之间有不同的值):
(^R_1A$|^R_2A$|^R_3A$|^R_4A$|^R_4B$|^R_5A$|^R_5B$ ...

最佳答案

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

pattern is the regular expression. It is usually a text literal and can be of any of the datatypes CHAR, VARCHAR2, NCHAR, or NVARCHAR2. It can contain up to 512 bytes. If the datatype of pattern is different from the datatype of source_char, Oracle Database converts pattern to the datatype of source_char. For a listing of the operators you can specify in pattern`**



取自 here

关于regex - Oracle - 确定正则表达式支持的最大大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2694023/

相关文章:

ruby - 如何在 Ruby Regex 中正确使用前瞻?

ios - 使用2种模式时遇到正则表达式问题

javascript - 如何获取 JQuery 提交函数中输入标记的原始值?

mysql - oracle的AL32UTF8字符集在mysql中代表什么

sql - Oracle 数据库中 IGNORE_DUP_KEY 的使用(sqlplus)

sql - Oracle SQL打印特定列时间的行

sql - 如何不选择值是否以 str% 开头但不以 %str 结尾,正则表达式示例

python - 仅在与其他匹配组不同时才匹配组

javascript - 正则表达式检查单词和单词长度

javascript - 在oracle apex中子窗口关闭时父页面刷新