Поделиться через


READTEXT (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Считывает значения text, ntext или image из столбцов text, ntext или image. Считывание начинается с указанной позиции и выполняется для указанного числа байтов.

Внимание

Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого используйте функцию SUBSTRING .

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

таблица. столбец
Имя таблицы и столбца, откуда должны быть считаны данные. Имена таблиц и столбцов должны соответствовать правилам для идентификаторов. Указание имен таблицы и столбца обязательно; однако указание имени базы данных и имен владельца является необязательным.

text_ptr
Действительный текстовый указатель. Значение text_ptr должно иметь тип binary(16).

offset
Это число байтов, если используется тип данных text или image. Это также может быть число символов, если используется тип данных ntext, которые следует пропустить, прежде чем приступить к чтению данных типа text, image или ntext.

size. Число байтов, если используется тип данных text или image. Это также может быть число байтов для символов, если для чтения используется тип данных ntext. Если для аргумента size указано значение 0, считывается 4 КБ данных.

HOLDLOCK
Вызывает блокировку считывания для текстового значения до окончания транзакции. Другие пользователи могут считывать значение, но не могут изменять его.

Замечания

Используйте функцию TEXTPTR, чтобы получить действительное значение аргумента text_ptr. TEXTPTR возвращает указатель в столбец text, ntext или image в указанной строке. TEXTPRT также может возвращать указатель в столбец text, ntext или image в последней строке, возвращаемой запросом, если возвращается более одной строки. Поскольку TEXTPTR возвращает 16-байтовую двоичную строку, рекомендуется объявить локальную переменную для хранения текстового указателя, а затем использовать эту переменную с READTEXT. Дополнительные сведения об объявлении локальной переменной см. в статье DECLARE @local_variable (Transact-SQL).

В SQL Server могут существовать недействительные внутристрочные текстовые указатели. Дополнительные сведения о параметре text in row см. в статье sp_tableoption (Transact-SQL). Дополнительные сведения о недопустимости текстовых указателей см. в статье sp_invalidate_textptr (Transact-SQL).

Значение функции @@TEXTSIZE переопределяет размер, указанный для READTEXT, если оно меньше указанного в READTEXT размера. Функция @@TEXTSIZE указывает предельное число возвращаемых байтов данных, установленное инструкцией SET TEXTSIZE. Дополнительные сведения о том, как задать значение TEXTSIZE для сеанса, см. в статье SET TEXTSIZE (Transact-SQL).

Разрешения

Разрешения READTEXT по умолчанию принадлежат пользователям, имеющим разрешения SELECT для указанной таблицы. Разрешения могут быть переданы при передаче разрешений SELECT.

Примеры

В примере ниже считываются символы со второго по 26-й в столбце pr_info таблицы pub_info.

Примечание.

Для выполнения этого примера необходимо установить образец базы данных 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  

См. также

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