Udostępnij za pośrednictwem


TEXTPTR (Transact-SQL)

Zwraca kursor tekstowy wartość odpowiadającą text, ntext, lub image kolumna w varbinary format.Wartość wskaźnika pobrane tekst może być używana w instrukcji READTEXT, WRITETEXT i UPDATETEXT.

Ważna informacjaWażne:

Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.Funkcja alternatywnego nie jest dostępna.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

TEXTPTR ( column )

Argumenty

  • column
    Jest text, ntext, lub image kolumna , która będzie używana.

Zwracane typy

varbinary

Uwagi

W SQL Server 2005 i nowsze wersje dla tabel z tekstem — jest wiersz TEXTPTR zwraca uchwyt dla tekstu na przetworzenie.Wskaźnik prawidłowe tekstu można uzyskać nawet wtedy, gdy wartość jest null.

W SQL Server 2005 i jego nowsze wersje TEXTPTR funkcja nie można używać w kolumnach widoki.Tylko można go na kolumny tabel.Aby użyć TEXTPTR funkcja na kolumna w widoku, należy zestaw poziom zgodności do 80 za pomocą Zmienić poziom zgodności bazy danych.Jeśli tabela nie ma tekstu w wierszu, a text, ntext, lub image kolumna nie została zainicjowana przez UPDATETEXT instrukcja, TEXTPTR zwraca wskaźnik null .

Aby sprawdzić, czy istnieje wskaźnik tekstu za pomocą TEXTVALID.UPDATETEXT, WRITETEXT lub READTEXT nie można używać bez wskaźnika prawidłowy tekst.

Te funkcje i instrukcje są także przydatne podczas pracy z text, ntext, i image danych.

Funkcja lub instrukcja

Opis

PATINDEX("%pattern%" , expression)

Zwraca znak określony znak ciąg w text lub ntext kolumny.

DŁUGOŚĆ_DANYCH(expression))

Zwraca długość danych w text, ntext, i image kolumny.

ZESTAW TEXTSIZE

Zwraca limit, podany w bajtach, z text, ntext, lub image dane zwrócone z instrukcjaSELECT.

SUBSTRING(text_column, start, length)

Zwraca varchar ciąg określony przez określony start przesunięcia i length.Długość powinna być mniejsza niż 8 KB.

Przykłady

Ostrzeżenie

Aby uruchomić następujące przykłady, należy zainstalować pubs bazy danych.Aby uzyskać informacje dotyczące sposobu instalowania pubs bazy danych, zobacz Pobieranie Northwind i pubs przykładowe bazy danych

A.Przy użyciu TEXTPTR

W poniższym przykładzie użyto TEXTPTR funkcja do zlokalizowania obrazu kolumna logo związane z New Moon Books w pub_info tabela pubs bazy danych.Wskaźnik tekstu jest wprowadzane do zmiennej lokalnej@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.Jest wiersz tekstu przy użyciu TEXTPTR

W SQL Server, wskaźnik tekstu w wierszu musi być używany wewnątrz transakcji, jak pokazano w następującym przykładzie.

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.Zwracanie danych tekstowych

W poniższym przykładzie pub_id kolumna i tekst 16-bajtowy wskaźnik z pr_info kolumna z pub_info tabela.

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

Oto zestaw wyników.

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

(8 row(s) affected)

Poniższy przykład ilustruje sposób powrócić do pierwszego 8000 bajtów tekst bez korzystania z TEXTPTR.

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

Oto zestaw wyników.

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.Zwracanie danych określonego tekstu

Poniższy przykład lokalizuje text kolumna (pr_info) związane z pub_id0736 w pub_info tabela pubs bazy danych.Deklaruje najpierw zmienna lokalna @val.Wskaźnik tekstu (dwójkowa długa ciąg) jest następnie wprowadzane do @val i dostarczane jako parametr do READTEXT instrukcja.Zwraca 10 bajtów, począwszy od piątego bajtów (przesunięcie 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

Oto zestaw wyników.

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