我必须在不同版本的PostgreSQL(从8.3到9.6)上运行一系列查询,并且我有反斜杠字符的问题,因为在8。X版本需要转义,在9。
此刻,我运行查询SELECT '\'
并检查结果是否为""
或"\"
,以便我知道反斜杠是否需要转义。
我想知道是否有某种方法,通过查询,告诉postgres以相同的方式处理反斜杠(不修改其配置,因为我无法访问这些安装的配置)。
此行为由参数standard_conforming_strings
控制,该参数在8.2版中引入。
在9.1版本中,该参数的默认值更改为on
。
如果standard_conforming_strings
是off
,反斜杠是字符串字面量中的转义字符。
您可以使用SET
SQL语句更改数据库会话的参数,不需要更改配置。另一种选择是始终使用“extended "字符串字面值(在开始的单引号前面加上一个E
)—在这样的字面值中,反斜杠始终是转义字符:
SELECT E'\';
?column?
══════════
(1 row)