Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
azure SQL Managed Instance
Vrátí hodnotu textového ukazatele, která odpovídá sloupci textu, ntextu nebo obrázku ve formátu varbinary . Načtenou hodnotu textového ukazatele lze použít v příkazech READTEXT, WRITETEXT a UPDATETEXT.
Důležité
Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Alternativní funkce nejsou k dispozici.
Syntaxe
TEXTPTR ( column )
Arguments
sloupec
Je text, ntext nebo sloupec obrázku , který se použije.
Návratové typy
varbinary
Poznámky
U tabulek s textem v řádku vrátí funkce TEXTPTR popisovač pro zpracování textu. Platný textový ukazatel můžete získat i v případě, že je textová hodnota null.
U sloupců zobrazení nelze použít funkci TEXTPTR. Můžete ho použít jenom ve sloupcích tabulek. Chcete-li použít funkci TEXTPTR ve sloupci zobrazení, je nutné nastavit úroveň kompatibility na hodnotu 80 pomocí funkce ALTER DATABASE Compatibility Level. Pokud tabulka neobsahuje text v řádku a pokud text, ntext nebo sloupec obrázku nebyl inicializován příkazem UPDATETEXT, vrátí funkce TEXTPTR ukazatel null.
Pomocí funkce TEXTVALID otestujte, zda existuje textový ukazatel. Nelze použít funkci UPDATETEXT, WRITETEXT nebo READTEXT bez platného textového ukazatele.
Tyto funkce a příkazy jsou také užitečné při práci s textem, ntextem a obrazovými daty.
| Funkce nebo příkaz | Description |
|---|---|
| PATINDEX('%pattern%' ,expression) | Vrátí pozici znaku zadaného řetězce znaků v textových nebo ntextových sloupcích. |
| DATALENGTH(výraz) | Vrátí délku dat ve sloupcích textu, ntextu a obrázku . |
| NASTAVIT TEXTY | Vrátí limit v bajtech textu, ntextu nebo obrázkových dat, která se mají vrátit příkazem SELECT. |
| SUBSTRING(text_column, začátek, délka) | Vrátí řetězec varchar určený zadaným počátečním posunem a délkou. Délka by měla být menší než 8 kB. |
Examples
Poznámka:
Pokud chcete spustit následující příklady, musíte nainstalovat databázi pubs .
A. Použití funkce TEXTPTR
Následující příklad používá TEXTPTR funkci k vyhledání sloupce logoobrázku přidruženého New Moon Bookspub_info k tabulce pubs databáze. Textový ukazatel se vloží do místní proměnné. @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. Použití funkce TEXTPTR s textem v řádku
V SYSTÉMU SQL Server musí být vložený textový ukazatel použit uvnitř transakce, jak je znázorněno v následujícím příkladu.
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. Vrácení textových dat
Následující příklad vybere pub_id sloupec a 16bajtů textový ukazatel pr_info sloupce z pub_info tabulky.
USE pubs;
GO
SELECT pub_id, TEXTPTR(pr_info)
FROM pub_info
ORDER BY pub_id;
GO
Tady je soubor výsledků.
pub_id
------ ----------------------------------
0736 0x6c0000000000feffb801000001000100
0877 0x6d0000000000feffb801000001000300
1389 0x6e0000000000feffb801000001000500
1622 0x700000000000feffb801000001000900
1756 0x710000000000feffb801000001000b00
9901 0x720000000000feffb801000001000d00
9952 0x6f0000000000feffb801000001000700
9999 0x730000000000feffb801000001000f00
(8 row(s) affected)
Následující příklad ukazuje, jak vrátit první 8000 bajty textu bez použití TEXTPTR.
USE pubs;
GO
SET TEXTSIZE 8000;
SELECT pub_id, pr_info
FROM pub_info
ORDER BY pub_id;
GO
Tady je soubor výsledků.
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. Vrácení konkrétních textových dat
Následující příklad vyhledá text sloupec (pr_info) přidružený pub_id``0736 k pub_info tabulce pubs databáze. Nejprve deklaruje místní proměnnou @val. Textový ukazatel (dlouhý binární řetězec) se pak vloží @val a zadá jako parametr příkazu READTEXT . Vrátí se 10 bajtů počínaje pátým bajtem (posunem 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
Tady je soubor výsledků.
pr_info
-----------------------------------------------------------------------
is sample
(1 row(s) affected)
Viz také
DATALENGTH (Transact-SQL)
PATINDEX (Transact-SQL)
READTEXT (Transact-SQL)
SET TEXTIZE (Transact-SQL)
UPDATETEXT (Transact-SQL)
WRITETEXT (Transact-SQL)