postgresql standard_conforming_strings参数

最近,插入postgresql数据库插入\\的时候总是提示错误

SELECT lowrite(0, '<?xml version="1.0" encoding="UTF-8"?><process>\\015</process>');

那么测试一下

postgres=# select '\\';
WARNING:  nonstandard use of \\ in a string literal
LINE 1: select '\\';
               ^
HINT:  Use the escape string syntax for backslashes, e.g., E'\\'.
 ?column? 
----------
 \
(1 row)


postgres=# select E'\\';
 ?column? 
----------
 \
(1 row)


postgres=# show standard_conforming_strings;
 standard_conforming_strings 
-----------------------------
 off

可以看到off的时候只显示一个\


postgres=# select '\\';
 ?column? 
----------
 \\
(1 row)


postgres=# select E'\\';
 ?column? 
----------
 \
(1 row)


postgres=# show standard_conforming_strings;
 standard_conforming_strings 
-----------------------------
 on
(1 row)



那么打开该参数

set standard_conforming_strings=on;
SET
jbpm4=> select '\\';
 ?column? 
----------
 \\
(1 row)


jbpm4=> insert into t1 values ('<?xml version="1.0" encoding="UTF-8"?><process>\\015</process>');

这样就可以正常保存带\\的数据



打开该参数,那么久可以\\直接插入,所以注意此参数的设置对\\的影响。

你可能感兴趣的:(postgresql standard_conforming_strings参数)