Udostępnij za pomocą


STRING_ESCAPE (Transact-SQL)

Dotyczy do: SQL Server 2016 (13.x) i nowsze wersje Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Umożliwia ucieczkę znaków specjalnych w tekście i zwraca tekst ze znakami ucieczki. STRING_ESCAPE to funkcja deterministyczna wprowadzona w programie SQL Server 2016.

Transact-SQL konwencje składni

Składnia

STRING_ESCAPE( text , type )  

Arguments

tekst
Jest wyrażeniemnvarchar reprezentującym obiekt, który powinien zostać uniknięty.

type
Ucieczka reguł, które zostaną zastosowane. Obecnie obsługiwana wartość to 'json'.

Typy zwracane

nvarchar(max) tekst ze znakiem specjalnym i kontrolnym. Obecnie STRING_ESCAPE może unikać tylko znaków specjalnych JSON wyświetlanych w poniższych tabelach.

Znak specjalny Zakodowana sekwencja
Cudzysłów (") \"
Odwrotny solidus (\) \\
Solidus (/) \/
Klawisz Backspace \b
Źródło danych formularzy \f
Nowy wiersz \n
Powrót karetki \r
Zakładka pozioma \t
Znak kontrolki Zakodowana sekwencja
CHAR(0) \u0000
CHAR(1) \u0001
...\ ...\
CHAR(31) \u001f

Uwagi

Przykłady

A. Tekst ucieczki zgodnie z regułami formatowania JSON

Poniższe zapytanie usuwa znaki specjalne przy użyciu reguł JSON i zwraca tekst ucieczki.

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

Oto zestaw wyników.

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

B. Formatowanie obiektu JSON

Poniższe zapytanie tworzy tekst JSON na podstawie zmiennych liczbowych i ciągów oraz usuwa wszelkie specjalne znaki JSON w zmiennych.

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

Zobacz też