Share via


READTEXT (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

Lê os valores text, ntext ou image de uma coluna text, ntext ou image. Começa lendo de um deslocamento especificado e lendo o número especificado de bytes.

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Use a função SUBSTRING nesse caso.

Convenções de sintaxe de Transact-SQL

Sintaxe

READTEXT { table.column text_ptr offset size } [ HOLDLOCK ]  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

table.column
É o nome de uma tabela e uma coluna a partir das quais a leitura será feita. Os nomes de tabela e de coluna precisam cumprir as regras de identificadores. A especificação dos nomes de tabela e coluna é necessária; entretanto, a especificação do nome do banco de dados e de nomes de proprietário é opcional.

text_ptr
É um ponteiro de texto válido. text_ptr precisa ser binary(16).

offset
É o número de bytes quando os tipos de dados text ou image são usados. Também pode ser o número de bytes para quando o tipo de dados ntext for usado para ignorar antes de iniciar a leitura dos dados de text, image ou ntext.

size É o número de bytes quando os tipos de dados text ou image são usados. Ele também pode ser o número de bytes para caracteres quando o tipo de dados ntext é usado para os dados serem lidos. Se size for 0, 4 KB de dados serão lidos.

HOLDLOCK
Faz com que o valor de texto seja bloqueado para leituras até o final da transação. Outros usuários podem ler o valor, mas não podem modificá-lo.

Comentários

Use a função TEXTPTR para obter um valor de text_ptr válido. TEXTPTR retorna um ponteiro para as colunas text, ntext ou image na linha especificada. TEXTPRT também pode retornar um ponteiro ou para as colunas text, ntext ou image na última linha que a consulta retorna caso a consulta retorne mais de uma linha. Como TEXTPTR retorna uma cadeia binária de 16 bytes, recomenda-se declarar uma variável local para conter o ponteiro de texto e usá-la com READTEXT. Para obter mais informações sobre como declarar uma variável local, confira DECLARE @local_variable (Transact-SQL).

No SQL Server, podem existir ponteiros de texto em linha, mas podem não ser válidos. Para obter mais informações sobre a opção text in row, confira sp_tableoption (Transact-SQL). Para obter mais informações de como invalidar ponteiros de texto, confira sp_invalidate_textptr (Transact-SQL).

O valor da função @@TEXTSIZE substitui o tamanho especificado para READTEXT se ele for menor que o tamanho especificado para READTEXT. A função @@TEXTSIZE especifica o limite do número de bytes de dados a serem retornados, definido pela instrução SET TEXTSIZE. Para obter mais informações de como definir a configuração de sessão para TEXTSIZE, confira SET TEXTSIZE (Transact-SQL).

Permissões

As permissões de READTEXT usam como padrão os usuários que têm permissões SELECT na tabela especificada. As permissões são transferíveis quando são transferidas permissões SELECT.

Exemplos

O exemplo a seguir lê do segundo até o vigésimo sexto caractere da coluna pr_info na tabela pub_info.

Observação

Para executar este exemplo, você precisa instalar o banco de dados de exemplo pubs.

USE pubs;  
GO  
DECLARE @ptrval VARBINARY(16);  
SELECT @ptrval = TEXTPTR(pr_info)   
   FROM pub_info pr INNER JOIN publishers p  
      ON pr.pub_id = p.pub_id   
      AND p.pub_name = 'New Moon Books'  
READTEXT pub_info.pr_info @ptrval 1 25;  
GO  

Consulte Também

@@TEXTSIZE (Transact-SQL)
UPDATETEXT (Transact-SQL)
WRITETEXT (Transact-SQL)