READTEXT (Transact-SQL)
Lê valores text, ntext ou image de uma coluna text, ntext ou image, começando em um deslocamento especificado e lendo o número especificado de bytes.
Importante |
---|
Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Use a função SUBSTRING em seu lugar. |
Convenções da sintaxe Transact-SQL
Sintaxe
READTEXT { table.column text_ptr offset size } [ HOLDLOCK ]
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 devem estar em conformidade com as regras para 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 deve ser binary(16).offset
É o número de bytes (quando os tipos de dados text ou image forem usados) ou caracteres (quando o tipo de dados ntext for usado) a serem ignorados antes de iniciar a leitura dos dados text, image ou ntext.size
É o número de bytes (quando os tipos de dados text ou image forem usados) ou caracteres (quando o tipo de dados ntext for usado) de dados a serem lidos. Se size for 0, 4 KB bytes 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 text_ptr válido. TEXTPTR retorna um ponteiro para a coluna text, ntext ou image na linha especificada, ou a coluna text, ntext ou image na última linha retornada pela consulta se mais de uma linha for retornada. 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, consulte 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, consulte sp_tableoption (Transact-SQL). Para obter mais informações sobre como invalidar ponteiros de texto, consulte 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 sobre como definir a configuração de sessão para TEXTSIZE, consulte 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 caracteres da coluna pr_info na tabela pub_info.
Observação |
---|
Para executar este exemplo, você deve 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