Aracılığıyla paylaş


STRING_ESCAPE (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Metinlerdeki özel karakterlerin kaçışlarını oluşturur ve kaçış karakterleri içeren metinleri döndürür. STRING_ESCAPE , ilk olarak SQL Server 2016'da kullanıma sunulan belirleyici bir işlevdir.

Transact-SQL söz dizimi kuralları

Sözdizimi

STRING_ESCAPE( text , type )  

Arguments

text

Kaçılması gereken nesneyi temsil eden bir nvarcharifadesi .

type

Uygulanacak kaçış kuralları. Şu anda desteklenen değerdir 'json'.

Dönüş türleri

Kaçış özel ve denetim karakterleri içeren nvarchar(max) metni.

Şu anda STRING_ESCAPE yalnızca aşağıdaki tablolarda gösterilen JSON özel karakterlerden kaçabilirsiniz.

Özel karakter Kodlanmış sıra
Quotation mark (") \"
Reverse solidus (\\) \\
Solidus (/) \/
Backspace \b
Form feed \f
New line \n
Carriage return \r
Horizontal tab \t
Denetim karakteri Kodlanmış sıra
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f

Açıklamalar

Örnekler

A. JSON biçimlendirme kurallarına göre kaçış metni

Aşağıdaki sorgu, JSON kurallarını kullanarak özel karakterlerin kaçışını yapar ve kaçış metnini döndürür.

SELECT STRING_ESCAPE('\   /  
\\    "     ', 'json') AS escapedText;  

Sonuç kümesi aşağıdadır.

escapedText  
-------------------------------------------------------------  
\\\t\/\n\\\\\t\"\t

B. JSON nesnesini biçimlendirme

Aşağıdaki sorgu, sayı ve dize değişkenlerinden JSON metni oluşturur ve değişkenlerdeki özel JSON karakterlerinden çıkış yapar.

SET @json = FORMATMESSAGE('{ "id": %d,"name": "%s", "surname": "%s" }',
    17, STRING_ESCAPE(@name,'json'), STRING_ESCAPE(@surname,'json') );