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
Azure SQL Managed Instance
Retorna o valor do ponteiro de texto que corresponde a uma coluna text, ntext ou image no formato varbinary . O valor do ponteiro de texto recuperado pode ser usado nas instruções READTEXT, WRITETEXT e UPDATETEXT.
Importante
Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. A funcionalidade alternativa não está disponível.
Transact-SQL convenções de sintaxe
Sintaxe
TEXTPTR ( column )
Arguments
coluna
É a coluna de texto, ntext ou imagem que será usada.
Tipos de devolução
Varbinary
Observações
Para tabelas com texto em linha, TEXTPTR retorna um identificador para o texto a ser processado. Você pode obter um ponteiro de texto válido mesmo se o valor do texto for nulo.
Não é possível usar a função TEXTPTR em colunas de modos de exibição. Você só pode usá-lo em colunas de tabelas. Para usar a função TEXTPTR em uma coluna de um modo de exibição, você deve definir o nível de compatibilidade como 80 usando ALTER DATABASE Compatibility Level. Se a tabela não tiver texto em linha e se uma coluna de texto, ntext ou imagem não tiver sido inicializada por uma instrução UPDATETEXT, TEXTPTR retornará um ponteiro nulo.
Use TEXTVALID para testar se existe um ponteiro de texto. Não é possível usar UPDATETEXT, WRITETEXT ou READTEXT sem um ponteiro de texto válido.
Essas funções e instruções também são úteis quando você trabalha com dados de texto, ntext e imagem .
| Função ou instrução | Description |
|---|---|
| PATINDEX('%pattern%' ,expressão) | Retorna a posição do caractere de uma cadeia de caracteres especificada em colunas de texto ou ntext . |
| DATALENGTH(expressão) | Retorna o comprimento dos dados nas colunas text, ntext e image . |
| DEFINIR TEXTSIZE | Retorna o limite, em bytes, dos dados de texto, ntext ou imagem a serem retornados com uma instrução SELECT. |
| SUBSTRING(text_column, início, comprimento) | Retorna uma cadeia de caracteres varchar especificada pelo deslocamento e comprimento de início especificados. O comprimento deve ser inferior a 8 KB. |
Examples
Observação
Para executar os exemplos a seguir, você deve instalar o banco de dados pubs .
A. Usando TEXTPTR
O exemplo a seguir usa a TEXTPTR função para localizar a coluna logode imagem associada na pub_infoNew Moon Books tabela do pubs banco de dados. O ponteiro de texto é colocado em uma variável local @ptrval.
USE pubs;
GO
DECLARE @ptrval VARBINARY(16);
SELECT @ptrval = TEXTPTR(logo)
FROM pub_info pr, publishers p
WHERE p.pub_id = pr.pub_id
AND p.pub_name = 'New Moon Books';
GO
B. Usando TEXTPTR com texto em linha
No SQL Server, o ponteiro de texto em linha deve ser usado dentro de uma transação, conforme mostrado no exemplo a seguir.
CREATE TABLE t1 (c1 INT, c2 TEXT);
EXEC sp_tableoption 't1', 'text in row', 'on';
INSERT t1 VALUES ('1', 'This is text.');
GO
BEGIN TRAN;
DECLARE @ptrval VARBINARY(16);
SELECT @ptrval = TEXTPTR(c2)
FROM t1
WHERE c1 = 1;
READTEXT t1.c2 @ptrval 0 1;
COMMIT;
C. Retornando dados de texto
O exemplo a seguir seleciona a pub_id coluna e o ponteiro de texto de 16 bytes da pr_info coluna da pub_info tabela.
USE pubs;
GO
SELECT pub_id, TEXTPTR(pr_info)
FROM pub_info
ORDER BY pub_id;
GO
Aqui está o conjunto de resultados.
pub_id
------ ----------------------------------
0736 0x6c0000000000feffb801000001000100
0877 0x6d0000000000feffb801000001000300
1389 0x6e0000000000feffb801000001000500
1622 0x700000000000feffb801000001000900
1756 0x710000000000feffb801000001000b00
9901 0x720000000000feffb801000001000d00
9952 0x6f0000000000feffb801000001000700
9999 0x730000000000feffb801000001000f00
(8 row(s) affected)
O exemplo a seguir mostra como retornar os primeiros 8000 bytes de texto sem usar TEXTPTR.
USE pubs;
GO
SET TEXTSIZE 8000;
SELECT pub_id, pr_info
FROM pub_info
ORDER BY pub_id;
GO
Aqui está o conjunto de resultados.
pub_id pr_info
------ -----------------------------------------------------------------
0736 New Moon Books (NMB) has just released another top ten publication. With the latest publication this makes NMB the hottest new publisher of the year!
0877 This is sample text data for Binnet & Hardley, publisher 0877 in the pubs database. Binnet & Hardley is located in Washington, D.C.
This is sample text data for Binnet & Hardley, publisher 0877 in the pubs database. Binnet & Hardley is located in Washi
1389 This is sample text data for Algodata Infosystems, publisher 1389 in the pubs database. Algodata Infosystems is located in Berkeley, California.
9999 This is sample text data for Lucerne Publishing, publisher 9999 in the pubs database. Lucerne publishing is located in Paris, France.
This is sample text data for Lucerne Publishing, publisher 9999 in the pubs database. Lucerne publishing is located in
(8 row(s) affected)
D. Retornando dados de texto específicos
O exemplo a seguir localiza a text coluna (pr_info) associada pub_id``0736 na pub_info tabela do pubs banco de dados. Primeiro, declara a variável @vallocal . O ponteiro de texto (uma cadeia binária longa) é então colocado @val e fornecido como um parâmetro para a READTEXT instrução. Isso retorna 10 bytes a partir do quinto byte (deslocamento de 4).
USE pubs;
GO
DECLARE @val VARBINARY(16);
SELECT @val = TEXTPTR(pr_info)
FROM pub_info
WHERE pub_id = '0736';
READTEXT pub_info.pr_info @val 4 10;
GO
Aqui está o conjunto de resultados.
pr_info
-----------------------------------------------------------------------
is sample
(1 row(s) affected)
Ver também
COMPRIMENTO DE DADOS (Transact-SQL)
PATINDEX (Transact-SQL)
READTEXT (Transact-SQL)
DEFINIR TEXTSIZE (Transact-SQL)
UPDATETEXT (Transact-SQL)
WRITETEXT (Transact-SQL)