Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2025 (17.x)
Azure SQL Database
AzureSQL Managed Instance
SQL database in Microsoft Fabric
UNISTR fornece suporte para literais de cadeia de caracteres Unicode, permitindo que você especifique o valor de codificação Unicode de caracteres na cadeia de caracteres.
UNISTR retorna os caracteres Unicode correspondentes à expressão de entrada, conforme definido pelo padrão Unicode.
A sequência de escape para um caractere Unicode pode ser especificada na forma de \xxxx ou \+xxxxxx, onde xxxx é um valor de ponto de código UTF-16 válido e xxxxxx é um valor de ponto de código Unicode válido. Você pode procurar valores de ponto de código Unicode no Unicode Code Charts.
Em comparação com funções como NCHAR, UNISTR fornece uma maneira mais flexível e abrangente de lidar com caracteres Unicode. Por exemplo, enquanto NCHAR pode converter um único valor Unicode em um caractere, UNISTR lida com vários valores Unicode e sequências de escape, facilitando o trabalho com cadeias de caracteres complexas que incluem vários caracteres Unicode.
Note
UNISTRestá disponível na Instância Gerenciada SQL do Azure com a política de atualizaçãoSQL Server 2025 ou Always-up-to-date.
Transact-SQL convenções de sintaxe
Syntax
UNISTR ( 'character_expression' [ , 'unicode_escape_character' ] )
Remarks
Os principais benefícios do UNISTR incluem:
Suporte para sequências de escape Unicode:
UNISTRpermite especificar caracteres Unicode usando sequências de escapeFlexibilidade com tipos de entrada:
UNISTRsuporta vários tipos de caracteres, como char, nchar, varchare nvarchar. Para tipos de dados char e varchar, o agrupamento deve ser um agrupamento UTF-8 válido.Caracteres de escape personalizados: Você pode definir um caractere de escape personalizado para executar a conversão necessária de valores Unicode em um conjunto de caracteres de cadeia de caracteres.
O || operador de pipes está disponível na Instância Gerenciada SQL do Azure configurada com a política de atualizaçãoSQL Server 2025 ou Always-up-to-date.
Suporte a páginas de código
A função UNISTR não é compatível com páginas de código herdadas, o que significa que não suporta agrupamentos que usam conjuntos de caracteres não-Unicode. Esses agrupamentos com páginas de código herdadas podem ser identificados usando a consulta a seguir.
SELECT DISTINCT p.language,
p.codepage
FROM sys.fn_helpcollations() AS c
CROSS APPLY (VALUES (LEFT(c.name, CHARINDEX('_', c.name) - 1),
COLLATIONPROPERTY(c.name, 'codepage'))) AS p(language, codepage)
WHERE p.codepage NOT IN (
0 /* Unicode Only collation */,
65001 /* UTF-8 code page */
);
Para obter mais informações, consulte Appendix G DBCS/Unicode Mapping Tables e Appendix H Code Pages.
Arguments
'character_expression'
Uma expressão de qualquer tipo de caractere, como char, nchar, varcharou nvarchar. Para tipos de dados char e varchar, o agrupamento deve ser um agrupamento UTF-8 válido. Você pode especificar literais de cadeia de caracteres ou valores de ponto de código Unicode ou UTF-16 ou ambos.
character_expression suporta um comprimento tão grande quanto varchar(max) e nvarchar(max).
N'unicode_escape_character'
Um único caractere que representa uma sequência de escape Unicode definida pelo usuário. Se não for fornecido, o valor padrão será \.
Tipos de devolução
Um valor de cadeia de caracteres cujo comprimento e tipo dependem dos tipos de entrada.
Examples
A. Use UNISTR vs a função NCHAR
Todos os exemplos a seguir usam as UNISTR funções para executar a conversão necessária dos valores Unicode em conjunto de caracteres de cadeia de caracteres, para exibir o caractere Unicode Smiling Face With Open Mouth. O agrupamento de banco de dados deve ser um agrupamento UTF-8 se a entrada for de char ou varchar tipos de dados.
Usando UNISTR e NCHAR:
SELECT N'Hello! ' + NCHAR(0xd83d) + NCHAR(0xde00);
Este exemplo de exemplo também pode ser escrito:
SELECT UNISTR(N'Hello! \D83D\DE00');
SELECT UNISTR(N'Hello! \+01F603');
Aqui está o conjunto de resultados.
-----------
Hello! 😃
B. Use a função UNISTR com caractere de escape definido pelo usuário
O exemplo a seguir usa a função UNISTR com um caractere de escape personalizado para executar a conversão necessária do Unicode em um conjunto de caracteres de cadeia de caracteres.
SELECT UNISTR(N'ABC#00C0#0181#0187', '#');
Aqui está o conjunto de resultados.
-----------
ABCÀƁƇ
C. Use a função UNISTR combinando literais de cadeia de caracteres e pontos de código Unicode
No exemplo a seguir, UNISTR é usado com um caractere de escape definido pelo usuário ($) e um varchar tipo de dados com agrupamento UTF-8. Ele combina literais de cadeia de caracteres com um valor de ponto de código Unicode:
SELECT UNISTR('I $2665 Azure SQL.' COLLATE Latin1_General_100_CI_AS_KS_SC_UTF8, '$');
Aqui está o conjunto de resultados.
------------------
I ♥ Azure SQL.
D. Use a função UNISTR para caracteres além do limite UTF-8
Se você precisar usar um conjunto de caracteres além de UTF-8, deverá converter a sequência de caracteres para UTF-8 usando a cláusula COLLATE. Aqui está um exemplo:
SELECT UNISTR('\306F\3044' COLLATE Latin1_General_100_BIN2_UTF8) AS Yes_in_Japanese_Hiragana;
Aqui está o conjunto de resultados.
Yes_in_Japanese_Hiragana
------------------------
はい