text 型、ntext 型、image 型の関数の使用

次の関数は、text 型、ntext 型、および image 型のデータ操作専用です。

  • TEXTPTR は、text 型、ntext 型、または image 型のインスタンスへのポインタを含む binary(16) オブジェクトを返します。行が削除されるまでポインタは有効です。

  • TEXTVALID 関数は、指定されたテキスト ポインタが有効かどうかをチェックします。

テキスト ポインタは、text 型、ntext 型、および image 型のデータの変更に使用する READTEXT、UPDATETEXT、WRITETEXT、PATINDEX、DATALENGTH、および SET TEXTSIZE の各 Transact-SQL ステートメントに渡されます。

Transact-SQL ステートメントでは、text 型、ntext 型、および image 型のデータは、常に、ポインタを使用するか、データのアドレスを使用して参照されます。

次の例では、TEXTPTR 関数を使用して、pubs データベースの pub_info テーブルの pub_id0736 に関連付けられている text 列 (pr_info) が検出されます。まず、ローカル変数 @val を宣言します。次に、テキスト ポインタ (長いバイナリ文字列) を @val に格納し、READTEXT ステートメントにパラメータとして渡します。これにより、5 バイト目から始まる (4 バイトはオフセット) 10 バイトのデータが返されます。

注意

この例を実行するには、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 ).