怎么在Postgresql数据库中转义字符

  介绍

这篇文章给大家介绍怎么在Postgresql数据库中转义字符,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

产生问题

Postgresql数据库运行下面插入命令

insert  into  mapping_mac_brand (_id、mac、品牌),值(777 & # 39;D86595& # 39;, & # 39;玩具\ & # 39;s  Myth 公司强生# 39;)

提示下面的警告:

警告:非标准使用\ & # 39;在一个字符串

提示:使用& # 39;& # 39;写引用字符串或使用转义字符串的语法(E…& # 39;)

解决办法

1。名词解释

字符串文字:字符串字面量

转义字符串:转义字符串

转义字符:转义字符

转义序列:转义字符串

转义字符:

所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加“\“来表示常见的那些不能显示的ASCII字符,如\ 0 \ t \ n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。

在Java中,不管是String.split(),还是正则表达式,有一些特殊字符需要转义,这些字符是([{/^ -美元,brvbar;}])。

Java中转义方法为字符前面加上“\ \”,这样在分裂,replaceAll时就不会报错了;不过要注意,String.contains()方法不需要转义。

但是对于下面表格指定的字符,还是一个\即可转义。比如\ n .

2 .常见的转义字符

字母前面加上反斜线“\“来表示那些不能显示的ASCII字符。称为转义字符。如\ 0 \ t \ n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。

所有的转义字符和所对应的意义:

转义字符

意义

ASCII码值(十进制)

\

响铃(贝尔)

007

\ b

退格(BS),将当前位置移到前一列008年

\ f

换页(FF),将当前位置移到下页开头012年

\ n

换行(低频),将当前位置移到下一行开头010年

\ r

回车(CR),将当前位置移到本行开头013年

\ t

水平制表(HT)(跳到下一个制表位置)

\ 009 v

垂直制表(VT)

011

\ \

代表一个反斜线字符& # 39;& # 39;\ & # 39;092年

\ & # 39;

代表一个单引号(撇号)字符

039

\“

代表一个双引号字符

034

\ 0

空字符(NULL)

000

\ ddd

1到3位八进制数所代表的任意字符

三位八进制

\ xhh

1到2位十六进制所代表的任意字符

二位十六进制

<强> 3。解决方法

1。修改数据库配置,让数据库支持\作为转义字符

早期Postgresql普通字符串中的\是作为转义字符对待的,所以\ \最终会认为是\。但是这是不符合SQL标准的,所以在9.1 PG及以后,普通字符串中的\不会被任务是转义字符,而e # 39; xx \ x # 39;中的\才会被当作是转义字符。

为了使以前的代码可以在新的PG版本中运行,便有了standard_conforming_strings这个选项,这个选项默认是,表示按照SQL标准处理字符串,当设置为时,按照PG的旧版本处理字符串。运行下面命令,开启这个选项即可:

ALTER  ROLE  xx 拷贝DATABASE  yy  SET  standard_conforming_strings 用;

2。用新版本支持的转义字符# 39;公司& # 39;或者e # 39; & # 39;将含有转义的字符串放在单引号里面

& # 39; \ \ & # 39;,或者,e # 39; \ \ & # 39;

<强>补充:PG特殊字符的转义

实例1

imo=#, select  *,得到测试;   ,name    ------   ,重金属镉   ,ab   ,_b_c   (3,行)      国际海事组织=#,select  *,得到test  where  name  like  & # 39; _b % & # 39;;   ,name    ------   ,ab   ,_b_c   (2,行)      国际海事组织=#,select  *,得到test  where  name  like  & # 39; d_b % & # 39;, escape  & # 39; d # 39;;   ,name    ------   ,_b_c   (1,行)   国际海事组织=#,select  *,得到test  where  name  like  & # 39; \ _b % & # 39;,;   ,name    ------   ,_b_c   (1,行)

关于怎么在Postgresql数据库中转义字符就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

怎么在Postgresql数据库中转义字符