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') );