内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

怎么在Postgresql數(shù)據(jù)庫中轉(zhuǎn)義字符-創(chuàng)新互聯(lián)

這篇文章給大家介紹怎么在Postgresql 數(shù)據(jù)庫中轉(zhuǎn)義字符,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

成都創(chuàng)新互聯(lián)是工信部頒發(fā)資質(zhì)IDC服務(wù)器商,為用戶提供優(yōu)質(zhì)的服務(wù)器托管德陽服務(wù)

產(chǎn)生問題

Postgresql數(shù)據(jù)庫運(yùn)行下面insert命令

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 write quotes in strings or use the escape string syntax(E...')

解決辦法

1.名詞解釋

string literal :字符串字面量

escape string:轉(zhuǎn)義字符串

escape character:轉(zhuǎn)義字符

Escape Sequence:轉(zhuǎn)義字符串

轉(zhuǎn)義字符:

所有的ASCII碼都可以用“\”加數(shù)字(一般是8進(jìn)制數(shù)字)來表示。而C中定義了一些字母前加"\"來表示常見的那些不能顯示的ASCII字符,如\0,\t,\n等,就稱為轉(zhuǎn)義字符,因?yàn)楹竺娴淖址疾皇撬緛淼腁SCII字符意思了。

在Java中,不管是String.split(),還是正則表達(dá)式,有一些特殊字符需要轉(zhuǎn)義, 這些字符是 ( [ { / ^ - $ ¦ } ])。

Java中轉(zhuǎn)義方法為字符前面加上"\\",這樣在split、replaceAll時(shí)就不會(huì)報(bào)錯(cuò)了; 不過要注意,String.contains()方法不需要轉(zhuǎn)義。

但是對(duì)于下面表格指定的字符,還是一個(gè)\即可轉(zhuǎn)義。比如\n。

2.常見的轉(zhuǎn)義字符

字母前面加上反斜線"\"來表示那些不能顯示的ASCII字符.稱為轉(zhuǎn)義字符.如\0,\t,\n等,就稱為轉(zhuǎn)義字符,因?yàn)楹竺娴淖址疾皇撬緛淼腁SCII字符意思了。

所有的轉(zhuǎn)義字符和所對(duì)應(yīng)的意義:

轉(zhuǎn)義字符

意義

ASCII碼值(十進(jìn)制)

\a

響鈴(BEL)

007

\b

退格(BS) ,將當(dāng)前位置移到前一列

008

\f

換頁(FF),將當(dāng)前位置移到下頁開頭

012

換行(LF) ,將當(dāng)前位置移到下一行開頭

010

\r

回車(CR) ,將當(dāng)前位置移到本行開頭

013

\t

水平制表(HT) (跳到下一個(gè)TAB位置)

009

\v

垂直制表(VT)

011

\\

代表一個(gè)反斜線字符''\'

092

\'

代表一個(gè)單引號(hào)(撇號(hào))字符

039

\"

代表一個(gè)雙引號(hào)字符

034

\0

空字符(NULL)

000

\ddd

1到3位八進(jìn)制數(shù)所代表的任意字符

三位八進(jìn)制

\xhh

1到2位十六進(jìn)制所代表的任意字符

二位十六進(jìn)制

3.解決方法

1.修改數(shù)據(jù)庫配置,讓數(shù)據(jù)庫支持\作為轉(zhuǎn)義字符

早期Postgresql普通字符串中的\是作為轉(zhuǎn)義字符對(duì)待的,所以\\最終會(huì)認(rèn)為是\。但是這是不符合SQL標(biāo)準(zhǔn)的,所以在PG 9.1及以后,普通字符串中的\不會(huì)被任務(wù)是轉(zhuǎn)義字符,而E'xx\x'中的\才會(huì)被當(dāng)作是轉(zhuǎn)義字符。

為了使以前的代碼可以在新的PG版本中運(yùn)行,便有了standard_conforming_strings這個(gè)選項(xiàng),這個(gè)選項(xiàng)默認(rèn)是on,表示按照SQL標(biāo)準(zhǔn)處理字符串,當(dāng)設(shè)置為off時(shí),按照PG的舊版本處理字符串。運(yùn)行下面命令,開啟這個(gè)選項(xiàng)即可:

ALTER ROLE xx IN DATABASE yy SET standard_conforming_strings TO off;

2. 用新版本支持的轉(zhuǎn)義字符。''或者 E'',將含有轉(zhuǎn)義的字符串放在單引號(hào)里面

'\\' 或者 E'\\'

補(bǔ)充:PG特殊字符的轉(zhuǎn)義

實(shí)例1

imos=# select * from test;
 name 
------
 c_d
 ab
 _b_c
(3 rows)

imos=# select * from test where name like '_b%';
 name 
------
 ab
 _b_c
(2 rows)

imos=# select * from test where name like 'd_b%' escape 'd';
 name 
------
 _b_c
(1 row)
imos=# select * from test where name like '\_b%' ;
 name 
------
 _b_c
(1 row)

關(guān)于怎么在Postgresql 數(shù)據(jù)庫中轉(zhuǎn)義字符就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

新聞標(biāo)題:怎么在Postgresql數(shù)據(jù)庫中轉(zhuǎn)義字符-創(chuàng)新互聯(lián)
標(biāo)題URL:http://www.rwnh.cn/article12/gepgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)網(wǎng)站維護(hù)、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
怀仁县| 抚宁县| 蓝山县| 杭州市| 延寿县| 潼南县| 垣曲县| 安丘市| 铜鼓县| 定安县| 文登市| 龙海市| 香格里拉县| 深州市| 长治市| 和静县| 新建县| 罗平县| 巩义市| 阿拉善盟| 云阳县| 雷山县| 凤台县| 黄石市| 荥阳市| 泰顺县| 玉溪市| 吐鲁番市| 元朗区| 策勒县| 绥化市| 平谷区| 焉耆| 驻马店市| 惠来县| 睢宁县| 荆门市| 桐城市| 大安市| 屏东市| 汕尾市|