Text- und Bildfunktionen - TEXTPTR (Transact-SQL)Text and Image Functions - TEXTPTR (Transact-SQL)

DIESES THEMA GILT FÜR:jaSQL Server (ab 2008)neinAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Gibt den Textzeiger-Wert, entspricht einer Text, Ntext, oder Image Spalte Varbinary Format.Returns the text-pointer value that corresponds to a text, ntext, or image column in varbinary format. Der abgerufene Textzeigerwert kann in READTEXT-, WRITETEXT- und UPDATE-Anweisungen verwendet werden.The retrieved text pointer value can be used in READTEXT, WRITETEXT, and UPDATETEXT statements.

Wichtig

Dieses Feature wird in einer künftigen Version von Microsoft SQL Server entfernt.This feature will be removed in a future version of Microsoft SQL Server. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Es steht keine alternative Funktionalität zur Verfügung. Alternative functionality is not available.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax


TEXTPTR ( column )  

ArgumenteArguments

Spaltecolumn
Ist die Text, Ntext, oder Image Spalte, die verwendet werden.Is the text, ntext, or image column that will be used.

RückgabetypenReturn Types

varbinaryvarbinary

HinweiseRemarks

TEXTPTR gibt für Tabellen mit Text in Zeilen ein Handle für den zu verarbeitenden Text zurück.For tables with in-row text, TEXTPTR returns a handle for the text to be processed. Sie können selbst dann einen gültigen Textzeiger erhalten, wenn der Textwert gleich NULL ist.You can obtain a valid text pointer even if the text value is null.

Sie können die Funktion TEXTPTR nicht für Spalten von Sichten verwenden.You cannot use the TEXTPTR function on columns of views. Sie können sie nur für Spalten von Tabellen verwenden.You can only use it on columns of tables. Um die Funktion TEXTPTR für eine Spalte einer Sicht zu verwenden, müssen Sie den Kompatibilitätsgrad auf 80 festgelegt, mit ALTER DATABASE Kompatibilitätsgrad.To use the TEXTPTR function on a column of a view, you must set the compatibility level to 80 by using ALTER DATABASE Compatibility Level. Wenn die Tabelle keinen Text in Zeilen und einer Text, Ntext, oder Image Spalte nicht von einer UPDATETEXT-Anweisung initialisiert wurde, gibt TEXTPTR einen null-Zeiger zurück.If the table does not have in-row text, and if a text, ntext, or image column has not been initialized by an UPDATETEXT statement, TEXTPTR returns a null pointer.

Verwenden Sie TEXTVALID, um zu testen, ob ein Textzeiger vorhanden ist.Use TEXTVALID to test whether a text pointer exists. Sie können UPDATETEXT, WRITETEXT oder READTEXT nicht ohne einen gültigen Textzeiger verwenden.You cannot use UPDATETEXT, WRITETEXT, or READTEXT without a valid text pointer.

Diese Funktionen und Anweisungen sind auch nützlich, bei der Arbeit mit Text, Ntext, und Image Daten.These functions and statements are also useful when you work with text, ntext, and image data.

Funktion oder AnweisungFunction or statement DescriptionDescription
PATINDEX("" % Muster "", Ausdruck)PATINDEX('%pattern%' , expression) Gibt die Zeichenposition einer angegebenen Zeichenfolge in Text oder Ntext Spalten.Returns the character position of a specified character string in text or ntext columns.
DATALENGTH(Ausdruck)DATALENGTH(expression) Gibt die Länge der Daten in Text, Ntext, und Image Spalten.Returns the length of data in text, ntext, and image columns.
SET TEXTSIZESET TEXTSIZE Gibt den Grenzwert, in Bytes, der die Text, Ntext, oder Image Daten, die mit einer SELECT-Anweisung zurückgegeben werden.Returns the limit, in bytes, of the text, ntext, or image data to be returned with a SELECT statement.
TEILZEICHENFOLGE(Text_column, starten, Länge)SUBSTRING(text_column, start, length) Gibt eine Varchar jener, die durch das angegebene starten Offset und Länge.Returns a varchar string specified by the specified start offset and length. Die Länge sollte kleiner als 8 KB sein.The length should be less than 8 KB.

BeispieleExamples

Hinweis

Um die folgenden Beispiele auszuführen, müssen Sie installieren die Pubs Datenbank.To run the following examples, you must install the pubs database.

A.A. Verwenden von TEXTPTRUsing TEXTPTR

Im folgenden Beispiel wird die TEXTPTR Funktion zum Suchen der Image Spalte logo zugeordnet New Moon Books in der pub_info Tabelle mit den pubs Datenbank.The following example uses the TEXTPTR function to locate the image column logo associated with New Moon Books in the pub_info table of the pubs database. Der Textzeiger wird in der lokalen Variablen @ptrval. abgelegt.The text pointer is put into a local variable @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.B. Verwenden von TEXTPTR mit Text in ZeilenUsing TEXTPTR with in-row text

In SQL ServerSQL Server muss der Textzeiger in Zeilen innerhalb einer Transaktion verwendet werden, wie im folgenden Beispiel gezeigt.In SQL ServerSQL Server, the in-row text pointer must be used inside a transaction, as shown in the following example.

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.C. Zurückgeben von TextdatenReturning text data

Im folgenden Beispiel wird die Spalte pub_id und der 16 Byte lange Textzeiger der Spalte pr_info aus der Tabelle pub_info ausgewählt.The following example selects the pub_id column and the 16-byte text pointer of the pr_info column from the pub_info table.

USE pubs;  
GO  
SELECT pub_id, TEXTPTR(pr_info)  
FROM pub_info  
ORDER BY pub_id;  
GO  

Im Folgenden finden Sie das Resultset.Here is the result set.

pub_id                                      
------ ----------------------------------   
0736   0x6c0000000000feffb801000001000100   
0877   0x6d0000000000feffb801000001000300   
1389   0x6e0000000000feffb801000001000500   
1622   0x700000000000feffb801000001000900   
1756   0x710000000000feffb801000001000b00   
9901   0x720000000000feffb801000001000d00   
9952   0x6f0000000000feffb801000001000700   
9999   0x730000000000feffb801000001000f00   

(8 row(s) affected)  

Das folgende Beispiel zeigt, wie die ersten 8000 Byte Text ohne Verwendung von TEXTPTR zurückgegeben werden.The following example shows how to return the first 8000 bytes of text without using TEXTPTR.

USE pubs;  
GO  
SET TEXTSIZE 8000;  
SELECT pub_id, pr_info  
FROM pub_info  
ORDER BY pub_id;  
GO  

Im Folgenden finden Sie das Resultset.Here is the result set.

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.D. Zurückgeben von bestimmten TextdatenReturning specific text data

Das folgende Beispiel sucht nach der text Spalte (pr_info) zugeordneten pub_id``0736 in der pub_info Tabelle mit der pubs Datenbank.The following example locates the text column (pr_info) associated with pub_id``0736 in the pub_info table of the pubs database. Es wird zunächst die lokale Variable @val deklariert.It first declares the local variable @val. Der Textzeiger (eine lange Binärzeichenfolge) wird dann in der Variablen @val abgelegt und als Parameter der READTEXT-Anweisung übergeben.The text pointer (a long binary string) is then put into @val and supplied as a parameter to the READTEXT statement. Diese Anweisung gibt beginnend beim fünften Byte (Offset 4) 10 Byte zurück.This returns 10 bytes starting at the fifth byte (offset of 4).

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  

Im Folgenden finden Sie das Resultset.Here is the result set.

pr_info                                                                                                                                                                                                                                                           
-----------------------------------------------------------------------  
 is sample  
(1 row(s) affected)  

Siehe auchSee Also

DATALENGTH ( Transact-SQL ) DATALENGTH (Transact-SQL)
PATINDEX ( Transact-SQL ) PATINDEX (Transact-SQL)
READTEXT ( Transact-SQL ) READTEXT (Transact-SQL)
SET TEXTSIZE ( Transact-SQL ) SET TEXTSIZE (Transact-SQL)
Text und Image-Funktionen ( Transact-SQL ) Text and Image Functions (Transact-SQL)
UPDATETEXT (Transact-SQL) UPDATETEXT (Transact-SQL)
WRITETEXT (Transact-SQL)WRITETEXT (Transact-SQL)