Verwenden von text-, ntext- und image-Funktionen
Die folgenden Funktionen werden ausschließlich für Vorgänge mit Daten vom Typ text, ntext und image verwendet:
- TEXTPTR gibt ein binary(16)-Objekt zurück, das einen Zeiger auf eine text-, ntext- oder image-Instanz enthält. Der Zeiger bleibt gültig, bis die Zeile gelöscht wird.
- Die TEXTVALID-Funktion überprüft, ob ein angegebener Textzeiger gültig ist.
Textzeiger werden an die Transact-SQL-Anweisungen READTEXT, UPDATETEXT, WRITETEXT, PATINDEX, DATALENGTH und SET TEXTSIZE übergeben, mit denen Daten vom Typ text, ntext und image geändert werden.
In Transact-SQL-Anweisungen werden zum Verweisen auf Daten vom Typ text, ntext und image immer Zeiger oder die Adresse der Daten verwendet.
Das folgende Beispiel verwendet die TEXTPTR
-Funktion, um in der pub_info
-Tabelle der pubs
-Datenbank die zur pub_id``0736
gehörende text-Spalte (pr_info
) zu finden. Es wird zunächst die lokale Variable @val
deklariert. Der Textzeiger (eine lange Binärzeichenfolge) wird dann in der Variablen @val
abgelegt und als Parameter an die READTEXT
-Anweisung übergeben. Diese Anweisung gibt beginnend beim fünften Byte (Offset 4
), 10 Bytes zurück.
Hinweis: |
---|
Um dieses Beispiel auszuführen, müssen Sie die pubs-Datenbank installieren. Informationen zum Installieren der pubs-Datenbank finden Sie unter Downloaden der Beispieldatenbanken Northwind und 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
Dies ist das Resultset.
(1 row(s) affected)
pr_info
----------------------------------------
is sample
Die explizite Konvertierung mithilfe der CAST-Funktion wird von text in varchar, von ntext in nvarchar und von image in varbinary oder binary unterstützt. Dabei werden jedoch text- oder image-Daten auf 8.000 Bytes und ntext-Daten auf 4.000 Zeichen (8.000 Bytes) abgeschnitten. Die Konvertierung von text, ntext oder image in andere Datentypen als die genannten wird weder implizit noch explizit unterstützt. Allerdings kann eine indirekte Konvertierung von text-, ntext,- oder image-Daten ausgeführt werden. Beispiel: CAST( CAST( text_column_name AS varchar(10) ) AS int ).
Siehe auch
Andere Ressourcen
TEXTPTR (Transact-SQL)
TEXTVALID (Transact-SQL)
Text- und Bildfunktionen (Transact-SQL)