STRING_ESCAPE (Transact-SQL)

Aplica-se a: SQL Server 2016 (13.x) e posterior Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Faz o escape dos caracteres especiais em textos e retorna o texto com caracteres com escape. STRING_ESCAPE é uma função determinística, introduzida no SQL Server 2016.

Convenções de sintaxe de Transact-SQL

Sintaxe

STRING_ESCAPE( text , type )  

Argumentos

text
É uma expressão nvarchar que representa o objeto que deve ser escapado.

tipo
Regras de escape que serão aplicadas. Atualmente, o valor com suporte é 'json'.

Tipos de retorno

Texto nvarchar(max) com caracteres especiais e de controle com escape. No momento, STRING_ESCAPE somente pode fazer o escape de caracteres especiais JSON mostrados nas tabelas a seguir.

Caractere especial Sequência codificada
Aspas (") \"
Barra invertida (\) \\
Barra "/" \/
Backspace \b
Avanço de formulário \f
Nova linha \n
Retorno de carro \r
Guia horizontal \t
Caractere de controle Sequência codificada
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f

Comentários

Exemplos

a. Fazer o escape do texto de acordo com as regras de formatação do JSON

A consulta a seguir faz o escape de caracteres especiais usando regras do JSON e retorna o texto com escape.

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

Veja a seguir o conjunto de resultados.

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

B. Formatar objeto JSON

A consulta a seguir cria o texto JSON com base nas variáveis de número e cadeia de caracteres e faz o escape dos caracteres JSON especiais em variáveis.

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

Consulte Também