添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
风流倜傥的帽子  ·  MySQL 的提示和技巧·  3 天前    · 
火星上的油条  ·  Prisma Schema API | ...·  3 天前    · 
高兴的帽子  ·  在 Navicat for MongoDB ...·  4 天前    · 
大力的拐杖  ·  在 Red Hat Decision ...·  2 周前    · 
不羁的苦瓜  ·  Solved: HubSpot ...·  1 月前    · 
聪明的作业本  ·  签证类型及材料·  1 月前    · 

转载至: postgresql字符转义

在PostgreSQL 9之前的版本中,可以直接使用反斜杠 \ 进行转义;比如:\b表示退格, \n表示换行, \t表示水平制表符,\r标示回车,\f表示换页。除此之外还支持\digits和\xhexdigits,分别表示转义八进制和十六进制数据。

但是在PostgreSQL 9之后的版本,反斜杠已经变成了普通字符;如果想要使用反斜杠来转义字符,就必须在需要转义的字符串前面加上E(E就是Escape),如下:

select E'张\t小明';

对单引号的两种转义方式

在SQL标准中字符串是用单引号括起来的,而在PostgreSQL中遵守了该标准,双引号则是用来表示变量的,如果在字符串中需要使用到单引号,就需要对其进行转义。

方式一:使用E和反斜杠进行转义

select E'\'233';

方式二:直接用一个单引号来转义单引号

select '''233';

这两种方式都能得到 '233 的结果而不会报错,第二种方式比较简单,也可以通过修改 standard_conforming_strings 参数的值来让反斜杠从普通字符变回转义字符:

查询并修改该参数的值:

show standard_conforming_strings;
SET standard_conforming_strings = on;
SET standard_conforming_strings = off;

当该参数的值为off时就可以直接使用反斜杠作为转义字符里,如下:

select '\'233';

将会得到 '233 的结果而不会报错。

最近我在写 SQL 插入到 Postgresql 数据库中时候,遇到字符串中带有单引号,然后出错,就需要 转义 之后才能插入。如果字符串带单引号,就会 SQL 报错,所以需要 转义 才能插入。My SQL 则有以下方式可以插入。 大部分的数据库以及编程语言中字符 转义 都是使用反斜杠"\", 在 postgresql 9之前的版本中,也是支持反斜杠 转义 的, postgresql 9之前支持C语言风格的字符逃逸( 转义 )。 比如\b表示退格, \n表示换行, \t表示水平制表符,\r标示回车,\f表示进纸.除此之外还支持\digits和\xhexdigits,分别表示 转义 八进制和十六进制数据。 字符 转义 1. 现在的post... 今天碰到一个问题,就是 postgresql 中怎么在引号中定义变量,想了各种方法,也没有解决,下面是我找到的神似的内容。 在 PostgreSQL 9之前的版本中,可以直接使用反斜杠\进行 转义 ;比如:\b表示退格, \n表示换行, \t表示水平制表符,\r标示回车,\f表示换页。除此之外还支持\digits和\xhexdigits,分别表示 转义 八进制和十六进制数据。 但是在Postgre... insert into mapping_mac_brand(_id,mac,brand) values(777,'D86595','Toy\'s Myth Inc.')  提示下面的警告: Warning: nonstandard use of \' in a string literal HINT: Use '' to... 在每个数据库中 \ 默认都具有 转义 功能。而 在 postgresql 9以前 字符 \ 默认 具有 转义 功能,在 postgresql 9及以后 按照普通字符来处理有参数 standard_conforming_strings=on/off 控制on-表示\按照普通字符出来 不具有 转义 功能( postgresql 9 及以上版本默认值)off-表示具有 转义 功能( postgresql 9 ... 为了放弃阅读整个问题,我的基本问题是: PostgreSQL 中是否有一个函数来 转义字符 串中的正则表达式字符?我已经探测过文档,但无法找到这样的功能.这是完整的问题:在 PostgreSQL 数据库中,我有一个包含唯一名称的列.我还有一个定期在此字段中插入名称的进程,并且为了防止重复,如果需要输入已存在的名称,它会在末尾附加一个空格和括号.即姓名,姓名(1),姓名(2),姓名(3)等就目前而言,我使用以下... public static String specialCharacterEscape(String source) { String result = null; if (org.apache.commons.lang.StringUtils.isNotEmpty(source)) { result = source.replace("%", "\\%").replace("_", "\\_"); return result;