|
MS SQL Server - Выборка данных из столбцов типа TEXT и IMAGE
При выборке данных из столбцов типа TEXT, NTEXT или IMAGE SQL Server извлекает данные объема @@TEXTSIZE. Для управления выборкой данных типов TEXT, NTEXT или IMAGE в SQL Server существует команда READTEXT, обладающая следующим синтаксисом:
READTEXT {база.владелец.}таблица.столбец
{указатель смещение размер} [HOLDLOCK]
Чтение данных командой READTEXT возможно лишь при наличии в столбце текстового указателя. Указатель создается при обновлении или вставке в столбцах TEXT, NTEXT или IMAGE данных, отличных от NULL. Смещение определяет количество байтов, пропускаемых перед началом выборки данных из столбца, а размер — количество читаемых байтов. Если размер равен 0, читается блок размером 4 Кбайт. Если размер превышает @@TEXTSIZE, объем читаемого блока ограничивается @@TEXTSIZE.
Чтобы прочитать данные командой READTEXT, необходимо предварительно считать текстовый указатель в переменную типа BINARY или VARBINARY длиной минимум 16 байт, после чего выполнить команду SELECT с функцией TEXTPTR. Если команда SELECT возвращает несколько записей, текстовый указатель устанавливается на последнюю прочитанную запись. Следующий фрагмент демонстрирует процесс чтения из текстового столбца:
DECLARE @Tpoint BINARY(16)
SELECT @Tpoint = TEXTPTR(MyTextColumn)
FROM MyTextTable
READTEXT MyTextTable.MyTextColumn @Tpoint 200 2024
В этом фрагменте объявляется локальная переменная @Tpoint (локальные переменные рассматриваются ниже). Команда SELECT инициализирует текстовый указатель. Затем текстовый указатель используется для чтения байтов с 200-го по 2024-й столбцов MyTextColumn.
ВАЖНО!
Запомните: параметры команды READTEXT не разделяются запятыми.
|