使用 text、ntext 和 image 函数

有两个 textntextimage 函数专门用于对 textntextimage 数据所进行的操作:

文本指针被传递到用于操作 textntextimage 数据的 READTEXT、UPDATETEXT、WRITETEXT、PATINDEX、DATALENGTH 和 SET TEXTSIZE Transact-SQL 语句。

在 Transact-SQL 语句中,总是使用数据的指针或地址来引用 textntextimage 数据。

下面的示例使用 TEXTPTR 函数来查找与 pubs 数据库的 pub_info 表中 pub_id 0736 相关联的 text 列 (pr_info)。下例首先声明一个局部变量 @val。然后将文本指针(长二进制字符串)置于 @val 中,并将其作为参数提供给 READTEXT 语句,该语句将返回从第五个字节(偏移量为 4)开始的 10 个字节。

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 4

下面是结果集:

(1 row(s) affected)

pr_info
----------------------------------------
 yet

支持使用 CAST 函数进行从 textvarchar、从 ntextnvarchar 和从 imagevarbinarybinary 的显式转换,但 textimage 数据将截断为 8,000 个字节,ntext 数据将截断为 4,000 个字符(8,000 个字节)。从 textntext image 到其它数据类型的转换(无论是显式的还是隐性的)都不支持。但是,可以对 textntext image 数据进行间接转换,例如:

CAST( CAST( text_column_name AS VARCHAR(10) ) AS INT )。

请参见

文本和图像函数