Применение функций типов данных text, ntext и image
Следующие функции используются исключительно с данными типа text, ntext и image.
- Функция TEXTPTR возвращает объект типа binary(16), который содержит указатель на экземпляр типа text, ntext или image. Указатель остается допустимым до тех пор, пока строка не будет удалена.
- Функция TEXTVALID проверяет, является ли данный текстовый указатель допустимым.
Текстовые указатели передаются в инструкции Transact-SQL READTEXT, UPDATETEXT, WRITETEXT, PATINDEX, DATALENGTH и SET TEXTSIZE, которые применяются для изменения данных типа text, ntext и image.
В инструкциях Transact-SQL к данным типа text, ntext и image можно обращаться с помощью указателей или адресов данных.
Следующий пример использует функцию TEXTPTR
, чтобы найти столбец типа text (pr_info
), связанного со столбцом pub_id``0736
в таблице pub_info
базы данных pubs
. Вначале объявляется локальная переменная @val
. Затем текстовый указатель (длинная двоичная строка) помещается в переменную @val
и передается в качестве параметра инструкции READTEXT
. Инструкция возвращает 10 байт, начиная с пятого байта (смещение 4
).
Примечание. |
---|
Чтобы запустить данный пример, необходимо установить базу данных pubs. Дополнительные сведения об установке базы данных pubs см. в разделе Загрузка образцов баз данных Northwind и pubs. |
USE pubs
DECLARE @val varbinary(16)
SELECT @val = TEXTPTR(pr_info) FROM pub_info
WHERE pub_id = '0736'
READTEXT pub_info.pr_info @val 4 10
Ниже приводится результирующий набор.
(1 row(s) affected)
pr_info
----------------------------------------
is sample
Поддерживается явное преобразование типов с помощью функции CAST: преобразование из типа text в тип varchar, из типа ntext в тип nvarchar и из типа image в тип varbinary или binary, но данные типа text или image усекаются до 8 000 байт, а данные типа ntext усекаются до 4 000 символов (8 000 байт). Преобразование данных типа text, ntext или image в другой тип не поддерживается ни явно, ни неявно. Однако возможно косвенное преобразование данных типа text, ntext, или image. Например: CAST( CAST( text_column_name AS varchar(10) ) AS int ).
См. также
Другие ресурсы
TEXTPTR (Transact-SQL)
TEXTVALID (Transact-SQL)
Функции для работы с типами данных text и image (Transact-SQL)