TEXTPTR

varbin patin pr_in

TEXTPTR
以 varbinary 格式返回對應於 text、ntext 或 image 列的文本指針值。檢索到的文本指針值可用於 READTEXT、WRITETEXT 和 UPDATETEXT 語句。
語法
TEXTPTR ( column )
參數
column
待使用的 text、ntext 或 image 列。
返回類型
varbinary
注釋
在 Microsoft SQL Server™ 2000 中,對於帶行內文本的表,TEXTPTR 為要處理的文本返回一個句柄。即使文本值為空,用戶仍能獲得有效的文本指針。
如果表不帶行內文本,並且 text、ntext 或 image 列還未由 UPDATETEXT 語句初始化,則 TEXTPTR 將返回空指針。
可使用 TEXTVALID 來檢查文本指針是否存在。在無有效文本指針時,不能使用 UPDATETEXT、WRITETEXT 或 READTEXT。
下列函式和語句對 text、ntext 和 image 數據同樣有用。
函式或語句 描述
patindex('%pattern%', expression) 返回給定字元串在 text 或 ntext 列中的字元位置。
DATALENGTH(expression) 返回 text、ntext 和 image 列的數據長度。
SET TEXTSIZE 返回可用 SELECT 語句返回的 text、ntext 或 image 數據的極限大小(以位元組為單位)。
SUBSTRING(text_column, start, length) 返回由給定 start 偏移量和 length 所指定的 varchar 字元串。此長度應小於 8 KB。
示例
A. 使用 TEXTPTR
下例使用 TEXTPTR 函式在 pubs 資料庫的 pub_info 表中查找與 New Moon Books 相關聯的 image 列 logo。文本指針放置在局部變數 @ptrval 中。
USE pubs
GO
DECLARE @ptrval varbinary(16)
SELECT @ptrval = TEXTPTR(logo)
FROM pub_info pr, publishers p
WHERE p.pub_id = pr.pub_id
AND p.pub_name = 'New Moon Books'
GO
B. 使用帶行內文本的 TEXTPTR
在 SQL Server 2000 中,行內文本指針必須在事務內部使用。示例如下:
CREATE TABLE t1 (c1 int, c2 text)
EXEC sp_tableoption 't1', 'text in row', 'on'
INSERT t1 VALUES ('1', 'This is text.')
GO
BEGIN TRAN
DECLARE @ptrval VARBINARY(16)
SELECT @ptrval = TEXTPTR(c2)
FROM t1
WHERE c1 = 1
READTEXT t1.c2 @ptrval 0 1
COMMIT
C. 返回文本數據
下例從 pub_info 表中選擇 pub_id 列和 pr_info 列的 16 位元組文本指針。
USE pubs
GO
SELECT pub_id, TEXTPTR(pr_info)
FROM pub_info
ORDER BY pub_id
GO
下面是結果集:
pub_id
------ ----------------------------------
0736 0x6c0000000000feffb801000001000100
0877 0x6d0000000000feffb801000001000300
1389 0x6e0000000000feffb801000001000500
1622 0x700000000000feffb801000001000900
1756 0x710000000000feffb801000001000b00
9901 0x720000000000feffb801000001000d00
9952 0x6f0000000000feffb801000001000700
9999 0x730000000000feffb801000001000f00
(8 row(s) affected)
下例顯示如何在不使用 TEXTPTR 的情況下返回文本的前 8,000 個位元組。
USE pubs
GO
SET TEXTSIZE 8000
SELECT pub_id, pr_info
FROM pub_info
ORDER BY pub_id
GO
下面是結果集:
pub_id pr_info
------ -----------------------------------------------------------------
0736 New Moon Books (NMB) has just released another top ten publication. With the latest publication this makes NMB the hottest new publisher of the year!
0877 This is sample text data for Binnet & Hardley, publisher 0877 in the pubs database. Binnet & Hardley is located in Washington, D.C.
This is sample text data for Binnet & Hardley, publisher 0877 in the pubs database. Binnet & Hardley is located in Washi
1389 This is sample text data for Algodata Infosystems, publisher 1389 in the pubs database. Algodata Infosystems is located in Berkeley, California.
9999 This is sample text data for lucerne Publishing, publisher 9999 in the pubs database. Lucerne publishing is located in Paris, France.
This is sample text data for Lucerne Publishing, publisher 9999 in the pubs database. Lucerne publishing is located in
(8 row(s) affected)
D. 返回特定文本數據
下例在 pubs 資料庫的 pub_info 表中查找與 pub_id 0736 相關聯的 text 列 (pr_info)。下例首先聲明一個局部變數 @val。然後將文本指針(長二進制字元串)置於 @val 中,並將其作為參數提供給 READTEXT 語句,該語句將返回從第五個位元組(偏移量為 4)開始的 10 個位元組。
USE pubs
GO
DECLARE @val varbinary(16)
SELECT @val = TEXTPTR(pr_info)
FROM pub_info
WHERE pub_id = '0736'
READTEXT pub_info.pr_info @val 4 10
GO
下面是結果集:
(1 row(s) affected)
pr_info
------------------------------------------------------------------------
is sample

相關搜尋

熱門詞條

聯絡我們