postgresql standard_conforming_string参数

standard_conforming_strings=on,\失去了转义的意思,即‘’中是什么就是什么,但是standard_conforming_strings=off时,\会保留转义的含义所以select '\'即为''

在Unicode转义语法中,反斜杠后的任何其他字符均按字面意义使用。因此,要包含反斜杠字符,请写两个反斜杠(\)。即想要表达‘\d’的含义,在sql文中要写‘ \d ’,仅在打开配置参数standard_conforming_strings时,字符串常量的Unicode转义语法才起作用。

如果standard_conforming_strings是off,则反斜杠是字符串文本中的转义字符
也可以使用E‘字符’

示例:

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

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

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

mydb=# set standard_conforming_strings=off;
SET
mydb=# show standard_conforming_strings;
 standard_conforming_strings
-----------------------------
 off
(1 row)

mydb=# select '\';
mydb'#
mydb'# ;
mydb'# ^C
mydb=# ^C
mydb=# 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)

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

mydb=# select E'\';
mydb'# ;
mydb'# ;
mydb'# ^C
posted @   南大仙  阅读(650)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示