Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Managed Instance
Zwraca wartość wskaźnika tekstowego odpowiadającą kolumnie tekstowej, ntekstowej lub obrazowej w formacie varbinary . Pobrana wartość wskaźnika tekstowego może być używana w instrukcjach READTEXT, WRITETEXT i UPDATETEXT.
Ważne
Ta funkcja zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji. Funkcja alternatywna jest niedostępna.
Transact-SQL konwencje składni
Składnia
TEXTPTR ( column )
Arguments
kolumna
To tekst, ntekst lub kolumna obrazu , która będzie używana.
Typy zwracane
varbinary
Uwagi
W przypadku tabel z tekstem w wierszu funkcja TEXTPTR zwraca uchwyt do przetworzenia tekstu. Można uzyskać prawidłowy wskaźnik tekstowy, nawet jeśli wartość tekstowa ma wartość null.
Nie można użyć funkcji TEXTPTR w kolumnach widoków. Można go używać tylko w kolumnach tabel. Aby użyć funkcji TEXTPTR w kolumnie widoku, należy ustawić poziom zgodności na 80 przy użyciu poziomu zgodności ALTER DATABASE. Jeśli tabela nie ma tekstu w wierszu, a tekst, ntekst lub kolumna obrazu nie została zainicjowana przez instrukcję UPDATETEXT, funkcja TEXTPTR zwraca wskaźnik o wartości null.
Użyj parametru TEXTVALID, aby sprawdzić, czy istnieje wskaźnik tekstu. Nie można użyć kontrolki UPDATETEXT, WRITETEXT lub READTEXT bez prawidłowego wskaźnika tekstowego.
Te funkcje i instrukcje są również przydatne podczas pracy z danymi tekstowymi, ntekstowymi i obrazami .
| Funkcja lub instrukcja | Description |
|---|---|
| PATINDEX('%pattern%' ,expression) | Zwraca położenie znaku określonego ciągu znaków w kolumnach tekstowych lub ntekstowych . |
| DATALENGTH(wyrażenie) | Zwraca długość danych w kolumnach tekstowych, ntekstowych i obrazów . |
| USTAW ROZMIAR TEKSTU | Zwraca limit w bajtach tekstu, ntekstu lub danych obrazu , które mają być zwracane za pomocą instrukcji SELECT. |
| PODCIĄG (text_column, początek, długość) | Zwraca ciąg varchar określony przez określone przesunięcie i długośćrozpoczęcia. Długość powinna być mniejsza niż 8 KB. |
Przykłady
Uwaga / Notatka
Aby uruchomić następujące przykłady, należy zainstalować bazę danych pubs .
A. Korzystanie z textPTR
W poniższym przykładzie użyto TEXTPTR funkcji do zlokalizowania kolumny logoobrazu skojarzonej pub_info z New Moon Books tabelą pubs bazy danych. Wskaźnik tekstu 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. Używanie kontrolki TEXTPTR z tekstem w wierszu
W programie SQL Server wskaźnik tekstowy w wierszu musi być używany 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
Poniższy przykład wybiera kolumnę pub_id i 16-bajtowy wskaźnik pr_info tekstowy kolumny z pub_info tabeli.
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)
W poniższym przykładzie pokazano, jak zwrócić pierwsze 8000 bajty tekstu bez użycia metody 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 określonych danych tekstowych
W poniższym przykładzie znajduje się kolumna text (pr_info) skojarzona z pub_id``0736 tabelą pub_infopubs bazy danych. Najpierw deklaruje zmienną @vallokalną . Wskaźnik tekstowy (długi ciąg binarny) jest następnie umieszczany w @val instrukcji READTEXT i dostarczany jako parametr. Zwraca to 10 bajtów rozpoczynających się od piątego bajtu (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)
Zobacz też
DATALENGTH (Transact-SQL)
PATINDEX (Transact-SQL)
READTEXT (Transact-SQL)
SET TEXTSIZE (Transact-SQL)
UPDATETEXT (Transact-SQL)
WRITETEXT (Transact-SQL)