Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Banco de dados SQL no Microsoft Fabric
Retorna o caractere Unicode com o código inteiro especificado, como definido pelo padrão do Unicode.
Convenções de sintaxe de Transact-SQL
Sintaxe
NCHAR ( integer_expression )
Argumentos
integer_expression
Quando a ordenação do banco de dados não contiver o sinalizador de Caractere Suplementar (SC), esse será um inteiro positivo de 0 a 65535 (0 a 0xFFFF). Se for especificado um valor fora deste intervalo, será retornado NULL. Para obter mais informações sobre caracteres suplementares, veja Suporte a ordenações e a Unicode.
Quando a ordenação do banco de dados oferecer suporte ao sinalizador de SC, esse será um inteiro positivo de 0 a 1114111 (0 a 0x10FFFF). Se for especificado um valor fora deste intervalo, será retornado NULL.
Tipos de retorno
nchar(1) quando a ordenação de banco de dados padrão não é compatível com caracteres suplementares.
nvarchar(2) quando a ordenação de banco de dados padrão é compatível com caracteres suplementares.
Se o parâmetro integer_expression estiver no intervalo de 0 a 0xFFFF, somente um caractere será retornado. Para valores mais altos, NCHAR retorna o par alternativo correspondente. Não construa um par alternativo usando NCHAR(<High surrogate>) + NCHAR(\<Low Surrogate>). Em vez disso, use uma ordenação de banco de dados com suporte para caracteres suplementares e especifique o ponto de código Unicode para o par substituto. O exemplo a seguir demonstra o método de estilo antigo de construir um par substituto e o método preferencial de especificar o ponto de código Unicode.
CREATE DATABASE test COLLATE Finnish_Swedish_100_CS_AS_SC;
DECLARE @d NVARCHAR(10) = N'𣅿';
-- Old style method.
SELECT NCHAR(0xD84C) + NCHAR(0xDD7F);
-- Preferred method.
SELECT NCHAR(143743);
-- Alternative preferred method.
SELECT NCHAR(UNICODE(@d));
Exemplos
a. Usando NCHAR e UNICODE
O exemplo a seguir usa as funções UNICODE e NCHAR para imprimir o valor UNICODE e o NCHAR (caractere Unicode) do segundo caractere da cadeia de caracteres København e para imprimir o segundo caractere real, ø.
DECLARE @nstring NCHAR(8);
SET @nstring = N'København';
SELECT UNICODE(SUBSTRING(@nstring, 2, 1)),
NCHAR(UNICODE(SUBSTRING(@nstring, 2, 1)));
GO
Veja a seguir o conjunto de resultados.
----------- -
248 ø
(1 row(s) affected)
B. Usando SUBSTRING, UNICODE, CONVERT e NCHAR
O exemplo a seguir usa as funções SUBSTRING, UNICODE, CONVERT e NCHAR para imprimir o número do caractere, o caractere Unicode e o valor UNICODE de cada caractere na cadeia København.
-- The @position variable holds the position of the character currently
-- being processed. The @nstring variable is the Unicode character
-- string to process.
DECLARE @position INT, @nstring NCHAR(9);
-- Initialize the current position variable to the first character in
-- the string.
SET @position = 1;
-- Initialize the character string variable to the string to process.
-- Notice that there is an N before the start of the string. This
-- indicates that the data following the N is Unicode data.
SET @nstring = N'København';
-- Print the character number of the position of the string you are at,
-- the actual Unicode character you are processing, and the UNICODE
-- value for this particular character.
PRINT 'Character #' + ' ' + 'Unicode Character' + ' ' + 'UNICODE Value';
WHILE @position <= DATALENGTH(@nstring)
BEGIN
SELECT @position,
NCHAR(UNICODE(SUBSTRING(@nstring, @position, 1))),
CONVERT(NCHAR(17), SUBSTRING(@nstring, @position, 1)),
UNICODE(SUBSTRING(@nstring, @position, 1))
SELECT @position = @position + 1
END;
GO
Veja a seguir o conjunto de resultados.
Character # Unicode Character UNICODE Value
----------- ---- ----------------- -----------
1 K K 75
(1 row(s) affected)
----------- ---- ----------------- -----------
2 ø ø 248
(1 row(s) affected)
----------- ---- ----------------- -----------
3 b b 98
(1 row(s) affected)
----------- ---- ----------------- -----------
4 e e 101
(1 row(s) affected)
----------- ---- ----------------- -----------
5 n n 110
(1 row(s) affected)
----------- ---- ----------------- -----------
6 h h 104
(1 row(s) affected)
----------- ---- ----------------- -----------
7 a a 97
(1 row(s) affected)
----------- ---- ----------------- -----------
8 v v 118
(1 row(s) affected)
----------- ---- ----------------- -----------
9 n n 110
(1 row(s) affected)
----------- ---- ----------------- -----------
10 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
11 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
12 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
13 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
14 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
15 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
16 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
17 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
18 NULL NULL
(1 row(s) affected)