STRING_ESCAPE (Transact-SQL)
適用於:SQL Server 2016 (13.x) 和更新版本 Azure SQL 資料庫 Azure SQL 受控執行個體
逸出文字中的特殊字元並傳回逸出之字元的文字。 STRING_ESCAPE 是在 SQL Server 2016 中引入的決定性函式。
語法
STRING_ESCAPE( text , type )
引數
text
這是 nvarchar 運算式,表示應該逸出的物件。
type
將套用的逸出規則。 目前支援的值是 'json'
。
傳回型別
帶有逸出的特殊與控制字元的 nvarchar(max) 文字。 目前,STRING_ESCAPE 只能逸出下表中顯示的 JSON 特殊字元。
特殊字元 | 編碼的序列 |
---|---|
引號 (") | \" |
反向斜線 (\) | \\ |
斜線 (/) | \/ |
退格鍵 | \b |
換頁字元 | \f |
新行 | \n |
歸位字元 | \r |
水平 Tab 鍵 | \t |
控制字元 | 編碼的序列 |
---|---|
CHAR(0) | \u0000 |
CHAR(1) | \u0001 |
... | ... |
CHAR(31) | \u001f |
備註
範例
A. 根據 JSON 格式化規則逸出文字
下列查詢會使用 JSON 規則逸出特殊字元並傳回逸出的文字。
SELECT STRING_ESCAPE('\ /
\\ " ', 'json') AS escapedText;
結果集如下所示。
escapedText
-------------------------------------------------------------
\\\t\/\n\\\\\t\"\t
B. 格式化 JSON 物件
下列查詢會從數字和字串變數建立 JSON 文字,並逸出變數中的任何特殊 JSON 字元。
SET @json = FORMATMESSAGE('{ "id": %d,"name": "%s", "surname": "%s" }',
17, STRING_ESCAPE(@name,'json'), STRING_ESCAPE(@surname,'json') );