Megosztás a következőn keresztül:


Szöveg- és képfüggvények – TEXTPTR (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL Managed Instance

A szöveg, az ntext vagy a képoszlopnak megfelelő szövegmutató értékét adja vissza varbináris formátumban. A beolvasott szövegmutató értéke használható a READTEXT, a WRITETEXT és az UPDATETEXT utasításokban.

Fontos

Ez a funkció az SQL Server egy későbbi verziójában lesz eltávolítva. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását. Alternatív funkció nem érhető el.

Transact-SQL szintaxis konvenciók

Szemantika

TEXTPTR ( column )  

Arguments

oszlop
A használni kívánt szöveg, ntext vagy képoszlop .

Visszatérési típusok

varbinary

Megjegyzések

Sorközi szöveggel rendelkező táblázatok esetén a TEXTPTR egy leírót ad vissza a feldolgozandó szöveghez. Érvényes szöveges mutatót akkor is beszerezhet, ha a szöveges érték null.

A TEXTPTR függvény nem használható a nézetek oszlopaihoz. Csak táblák oszlopaihoz használhatja. Ha a TEXTPTR függvényt egy nézet oszlopán szeretné használni, a kompatibilitási szintet 80-ra kell állítania az ALTER DATABASE kompatibilitási szintjének használatával. Ha a táblázat nem tartalmaz sorba írt szöveget, és ha a szöveg, az ntext vagy a képoszlop nem inicializálódott UPDATETEXT utasítással, akkor a TEXTPTR null mutatót ad vissza.

A TEXTVALID használatával tesztelje, hogy létezik-e szövegmutató. Az UPDATETEXT, a WRITETEXT vagy a READTEXT nem használható érvényes szövegmutató nélkül.

Ezek a függvények és utasítások akkor is hasznosak, ha szöveggel, szöveggel és képadatokkal dolgozik.

Függvény vagy utasítás Description
PATINDEX('%pattern%' ;kifejezés) Egy adott karaktersztring karakterpozícióját adja vissza szöveg - vagy szövegoszlopokban .
DATALENGTH(kifejezés) A szöveges, ntext- és képoszlopokban lévő adatok hosszát adja vissza.
SZÖVEGMÉRET BEÁLLÍTÁSA A SELECT utasítással visszaadandó szöveges, ntext- vagy képadatok bájtban megadott korlátját adja vissza.
SUBSTRING(text_column, start, length) A megadott kezdő eltolás és hossz által megadott varchar sztringet adja vissza. A hossznak 8 KB-nál kisebbnek kell lennie.

Példák

Megjegyzés:

Az alábbi példák futtatásához telepítenie kell a pubok adatbázisát .

A. A TEXTPTR használata

Az alábbi példa a függvényt használja az TEXTPTR adatbázis táblájában pub_info társított New Moon Booksképoszloplogo megkeresésérepubs. A szövegmutató egy helyi változóba kerül @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. A TEXTPTR használata sorba írt szöveggel

Az SQL Serverben a soron belüli szövegmutatót egy tranzakción belül kell használni, ahogy az az alábbi példában is látható.

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. Szöveges adatok visszaadása

Az alábbi példa az pub_id oszlopot és az oszlop 16 bájtos szövegmutatóját pr_info választja ki a pub_info táblázatból.

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

Itt van az eredmények összessége.

pub_id                                      
------ ----------------------------------   
0736   0x6c0000000000feffb801000001000100   
0877   0x6d0000000000feffb801000001000300   
1389   0x6e0000000000feffb801000001000500   
1622   0x700000000000feffb801000001000900   
1756   0x710000000000feffb801000001000b00   
9901   0x720000000000feffb801000001000d00   
9952   0x6f0000000000feffb801000001000700   
9999   0x730000000000feffb801000001000f00   
  
(8 row(s) affected)  

Az alábbi példa bemutatja, hogyan lehet visszaadni az első 8000 bájtnyi szöveget a TEXTPTR használata nélkül.

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

Itt van az eredmények összessége.

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. Adott szöveges adatok visszaadása

Az alábbi példa az text adatbázis táblájában pubspub_info található oszlopot (pr_info) pub_id``0736 keresi meg. Először deklarálja a helyi változót @val. A szövegmutató (hosszú bináris sztring) ezután az utasítás paramétereként READTEXT lesz elhelyezve @val és megadva. Ez 10 bájtot ad vissza az ötödik bájttól kezdve (4 bájt eltolása).

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  

Itt van az eredmények összessége.

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

Lásd még:

DATALENGTH (Transact-SQL)
PATINDEX (Transact-SQL)
READTEXT (Transact-SQL)
SZÖVEGKÉSZLET BEÁLLÍTÁSA (Transact-SQL)
UPDATETEXT (Transact-SQL)
WRITETEXT (Transact-SQL)