Postgresql-轉義字符

背景:

今天碰到一個問題,就是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的結果而不會報錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章