Udostępnij za pośrednictwem


TEXTPTR (Transact-SQL)

Zwraca wskaźnik tekstu wartość, która odpowiada text, ntext, lub image kolumna varbinary Format. Wartość wskaźnika pobrane tekst może być używana w instrukcjach READTEXT, WRITETEXT i UPDATETEXT.

Important noteImportant Note:

This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Alternatywne funkcja jest niedostępna.

Topic link iconKonwencje składni języka Transact-SQL

TEXTPTR ( column )

Argumenty

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

Zwracane typy

varbinary

Remarks

W SQL Server 2005 i nowszych wersji, aby tekst one wiersza w tabeli TEXTPTR zwraca uchwyt na tekst, który ma być przetwarzane. Można uzyskać wskaźnika ważny tekst, nawet wtedy, gdy wartość jest równa null.

W SQL Server 2005 i jego nowsze wersje funkcja TEXTPTR nie można używać w kolumnach widoków. Można używać tylko go na kolumn w tabelach.Aby użyć funkcja TEXTPTR w odniesieniu do kolumna w widoku, należy ustawić poziom zgodności 80, za pomocą Poziom zgodności ALTER DATABASE.Jeśli w tabela nie ma tekstu w wierszu, a text, ntext, lub image Kolumna nie została zainicjowana przez instrukcję UPDATETEXT, TEXTPTR zwraca pusty wskaźnik.

Użyj TEXTVALID, aby sprawdzić, czy istnieje wskaźnik tekstu.Nie można używać UPDATETEXT, WRITETEXT lub READTEXT bez wskaźnika prawidłowy tekst.

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

Funkcja lub instrukcja

Description

PATINDEX('%pattern%' , expression)

Zwraca pozycję znaku ciąg znaków określonego w text lub ntext kolumny.

DŁUGOŚĆ_DANYCH(expression)

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

ZESTAW TEXTSIZE

Zwraca określony limit, w bajtach, od text, ntext, lub image dane, które mają być zwrócone z instrukcja SELECT.

PODCIĄGU(text_column, start, length)

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

Przykłady

Uwaga

Aby uruchomić w poniższych przykładach, należy zainstalować Pubs bazy danych.Aby uzyskać informacje dotyczące sposobu instalowania Pubs bazy danych, zobacz temat Pobieranie Northwind i przykładowe bazy danych pubs

A.Za pomocą TEXTPTR

W poniższym przykładzie użyto TEXTPTR Funkcja Znajdź obraz kolumna logo skojarzone z New Moon Books w pub_info tabela z pubs Baza danych. Wskaźnik tekst jest umieszczany w 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.Przy użyciu TEXTPTR z one wiersz tekstu

W SQL Server, wskaźnik w wierszu tekstu należy używać wewnątrz transakcji, jak pokazano w poniższym 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 następuje wybranie 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

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)

W poniższym przykładzie pokazano, jak zwrócić pierwszy 8000 Liczba bajtów tekstu bez użycia TEXTPTR.

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

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

The following example locates the text column (pr_info) associated with pub_id0736 in the pub_info table of the pubs database.Najpierw deklaruje zmienna lokalna @val. Następnie zaczęły wskaźnik tekst (ciąg długo binarne) @val i podany jako parametr READTEXT Instrukcja. Powoduje to zwrócenie 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

Here is the result set.

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