0
내가 PostgreSQL의 8.2탈출 브래킷
절이을위한 패턴 매칭 표현의 브래킷을 탈출하려고이 같은 같습니다
WHERE field SIMILAR TO '%UPC=\[ R%%(\mLE)%'
을하지만 난 점점 계속 :
ERROR: invalid regular expression: brackets [] not balanced
내가 PostgreSQL의 8.2탈출 브래킷
절이을위한 패턴 매칭 표현의 브래킷을 탈출하려고이 같은 같습니다
WHERE field SIMILAR TO '%UPC=\[ R%%(\mLE)%'
을하지만 난 점점 계속 :
ERROR: invalid regular expression: brackets [] not balanced
시험해보기 :
select '%UPC=\[ R%%(\mLE)%';
WARNING: nonstandard use of escape in a string literal
LINE 1: select '%UPC=\[ R%%(\mLE)%';
^
HINT: Use the escape string syntax for escapes, e.g., E'\r\n'.
?column?
------------------
%UPC=[ R%%(mLE)%
(1 row)
Postgres를 역 호환 모드 대신 standard conforming strings 모드로 설정해야합니다.
set standard_conforming_strings=1;
select '%UPC=\[ R%%(\mLE)%';
?column?
--------------------
%UPC=\[ R%%(\mLE)%
(1 row)
또는 모드에 관계없이 작동 escape string syntax 사용할 필요가 :
set standard_conforming_strings=1;
select E'%UPC=\\[ R%%(\\mLE)%';
?column?
--------------------
%UPC=\[ R%%(\mLE)%
(1 row)
set standard_conforming_strings=0;
select E'%UPC=\\[ R%%(\\mLE)%';
?column?
--------------------
%UPC=\[ R%%(\mLE)%
(1 row)
을하면 단일 사용자 또는 그룹에 대한 alter user
를 사용하여, 하나의 데이터베이스에 대한 alter database
를 사용하는 모든 데이터베이스는 postgresql.conf에서 할 수 set this setting, 현재 연결에 대해 set
을 사용합니다.
방금 이스케이프 문자열 구문을 사용했는데 효과가있었습니다. 나는 '\ m'도 탈출하는 것을 잊어 버렸고 문제가있었습니다. 감사! – hyperboreean