適用於: SQL Server 2016 (13.x) 及以後版本
Azure SQL Database Azure
SQL Managed Instance
SQL database in Microsoft Fabric
逸出文字中的特殊字元並傳回逸出之字元的文字。 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') );