使用 text、ntext 與 image 函數

下列函數專門用來操作 text、ntext 及 image 資料:

  • TEXTPTR 會傳回 binary(16) 物件,包含指向 text、ntext 或 image 執行個體的指標。在資料列遭刪除之前,指標都是有效的。

  • TEXTVALID 函數會檢查指定的文字指標是否有效。

文字指標會傳遞至 READTEXT、UPDATETEXT、WRITETEXT、PATINDEX、DATALENGTH 及 SET TEXTSIZE Transact-SQL 陳述式,這些陳述式可用來變更 text、ntext 及 image 資料。

在 Transact-SQL 陳述式中,text、ntext 及 image 資料永遠是以指標或資料位址來參考。

下列範例使用 TEXTPTR 函數,在 pubs 資料庫的 pub_info 資料表中,尋找與 pub_id0736 相關聯的 text 資料行 (pr_info)。首先,宣告本機變數 @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 ).