DBAtlas · 데이터베이스 운영 아틀라스

2201B: invalid_regular_expression

PostgreSQL

의미

정규 표현식 작업(~, ~*, SIMILAR TO, regexp_matches, substring 등)에 지정한 패턴이 유효하지 않다. 구문이 잘못되어 PostgreSQL이 패턴을 컴파일할 수 없었다.

원인

괄호 짝이 맞지 않거나, 유효하지 않은 문자 클래스, 잘못된 이스케이프 시퀀스, 지원되지 않는 구문을 가진 정규식 패턴이다. 흔한 원인은 특수 문자를 이스케이프하지 않고 사용자 입력을 그대로 패턴으로 사용하는 것이다.

해결 방법

POSIX/ARE 구문에 따라 정규식 패턴을 수정하고 괄호, 대괄호, 이스케이프 시퀀스를 확인한다. 사용자 입력을 패턴이 아닌 리터럴 텍스트로 검색하는 경우: PostgreSQL에는 내장 regexp_quote 함수가 없으므로 regexp_replace로 특수 문자 앞에 백슬래시를 붙여 이스케이프하거나, 정규식을 쓰지 않고 strpos()/position() 또는 LIKE ... ESCAPE를 사용한다. 별도 도구에서 테스트해 패턴을 검증한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목