У меня есть регулярное выражение, которое бросает РТЫ 12733, "регулярное выражение является слишком длинным". Как я определяю, каков максимальный поддерживаемый размер?
К вашему сведению: оскорбление regex является 892 символами. Это - сгенерированный regex, таким образом, я мог измениться, как я генерирую и выполняю его, но я хотел бы знать то, что - пределы макс. размеру, прежде чем я изменюсь, как я генерирую и выполняюсь.
(рабочая Oracle 10.2 г)
ОБНОВЛЕНИЕ:
Если это зависит от фактического regex, вот начало его (остальное - просто повторенное то же самое с различными значениями между ^
и $
):
(^R_1A$|^R_2A$|^R_3A$|^R_4A$|^R_4B$|^R_5A$|^R_5B$
...
Глядя на документацию по функциям регулярных выражений, REGEXP_SUBSTR, REGEXP_INSTR и REGEXP_REPLACE, он содержит следующую цитату для шаблона:
шаблон - это регулярное выражение. Обычно это текстовый литерал и может иметь любой из типов данных CHAR, VARCHAR2, NCHAR или NVARCHAR2. Он может содержать до 512 байт . Если тип данных шаблона отличается от типа данных source_char, Oracle Database преобразует шаблон в тип данных source_char. Список операторов можно указать в pattern` **
Взято из здесь