Funciones de texto e imagen - TEXTPTR (Transact-SQL)Text and Image Functions - TEXTPTR (Transact-SQL)

SE APLICA A: síSQL Server noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Devuelve el valor de puntero de texto que corresponde a una columna text, ntext o image en formato varbinary.Returns the text-pointer value that corresponds to a text, ntext, or image column in varbinary format. El valor del puntero de texto devuelto se puede utilizar en las instrucciones READTEXT, WRITETEXT y UPDATE.The retrieved text pointer value can be used in READTEXT, WRITETEXT, and UPDATETEXT statements.

Importante

Esta característica está en modo de mantenimiento y es posible que no se incluya en una versión futura de Microsoft SQL Server.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. No hay ninguna funcionalidad alternativa disponible.Alternative functionality is not available.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

  
TEXTPTR ( column )  

ArgumentosArguments

columncolumn
Se utilizará la columna text, ntext o image.Is the text, ntext, or image column that will be used.

Tipos devueltosReturn Types

varbinaryvarbinary

NotasRemarks

En las tablas con texto consecutivo, TEXTPTR devuelve un controlador para el texto que se va a procesar.For tables with in-row text, TEXTPTR returns a handle for the text to be processed. Es posible obtener un puntero de texto válido aunque el valor del texto sea NULL.You can obtain a valid text pointer even if the text value is null.

La función TEXTPTR no se puede utilizar en columnas de vistas.You cannot use the TEXTPTR function on columns of views. Solo se puede utilizar en columnas de tablas.You can only use it on columns of tables. Para utilizar la función TEXTPTR en una columna de una vista, debe establecerse el nivel de compatibilidad en 80 mediante el nivel de compatibilidad de ALTER DATABASE.To use the TEXTPTR function on a column of a view, you must set the compatibility level to 80 by using ALTER DATABASE Compatibility Level. Si la tabla no dispone de texto consecutivo y la instrucción UPDATETEXT no ha inicializado una columna text, ntext o image, TEXTPTR devuelve un puntero NULL.If the table does not have in-row text, and if a text, ntext, or image column has not been initialized by an UPDATETEXT statement, TEXTPTR returns a null pointer.

Utilice TEXTVALID para comprobar si un puntero de texto existe.Use TEXTVALID to test whether a text pointer exists. No es posible utilizar UPDATETEXT, WRITETEXT o READTEXT sin un puntero de texto válido.You cannot use UPDATETEXT, WRITETEXT, or READTEXT without a valid text pointer.

Estas funciones e instrucciones son también útiles cuando se trabaja con datos de tipo text, ntext e image.These functions and statements are also useful when you work with text, ntext, and image data.

Función o instrucciónFunction or statement DescripciónDescription
PATINDEX(' %pattern% ' , expression )PATINDEX('%pattern%' , expression) Devuelve la posición de carácter de una cadena de caracteres especificada en columnas de tipo text o ntext.Returns the character position of a specified character string in text or ntext columns.
DATALENGTH(expression )DATALENGTH(expression) Devuelve la longitud de datos en columnas text, ntext e image.Returns the length of data in text, ntext, and image columns.
SET TEXTSIZESET TEXTSIZE Devuelve el límite en bytes de los datos de tipo text, ntext o image que se devuelven con una instrucción SELECT.Returns the limit, in bytes, of the text, ntext, or image data to be returned with a SELECT statement.
SUBSTRING(text_column, start, length )SUBSTRING(text_column, start, length) Devuelve una cadena varchar según los valores especificados en el desplazamiento start y length.Returns a varchar string specified by the specified start offset and length. La longitud debe ser inferior a 8 KB.The length should be less than 8 KB.

EjemplosExamples

Nota

Para ejecutar estos ejemplos, es necesario instalar la base de datos pubs.To run the following examples, you must install the pubs database.

A.A. Usar TEXTPTRUsing TEXTPTR

En el ejemplo siguiente se utiliza la función TEXTPTR para encontrar la columna logo de image asociada a New Moon Books en la tabla pub_info de la base de datos pubs.The following example uses the TEXTPTR function to locate the image column logo associated with New Moon Books in the pub_info table of the pubs database. El puntero de texto se coloca en la variable local @ptrval.The text pointer is put into a local variable @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.B. Usar TEXTPTR con texto consecutivoUsing TEXTPTR with in-row text

En SQL ServerSQL Server, el puntero de texto consecutivo debe utilizarse dentro de una transacción, como se muestra en el ejemplo siguiente.In SQL ServerSQL Server, the in-row text pointer must be used inside a transaction, as shown in the following example.

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.C. Devolver datos de textoReturning text data

En el ejemplo siguiente se seleccionan la columna pub_id y el puntero de texto de 16 bits de la columna pr_info de la tabla pub_info.The following example selects the pub_id column and the 16-byte text pointer of the pr_info column from the pub_info table.

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

El conjunto de resultados es el siguiente.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)  

En el ejemplo siguiente se muestra cómo devolver los primeros 8000 bytes de texto sin utilizar TEXTPTR.The following example shows how to return the first 8000 bytes of text without using TEXTPTR.

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

El conjunto de resultados es el siguiente.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.D. Devolver datos de texto específicosReturning specific text data

En el ejemplo siguiente se encuentra la columna text (pr_info) asociada a pub_id``0736 en la tabla pub_info de la base de datos pubs.The following example locates the text column (pr_info) associated with pub_id``0736 in the pub_info table of the pubs database. Primero se declara la variable local @val.It first declares the local variable @val. A continuación, el puntero de texto (una cadena binaria de tipo long) se coloca en @val y se suministra como parámetro a la instrucción READTEXT.The text pointer (a long binary string) is then put into @val and supplied as a parameter to the READTEXT statement. De esta forma, se devuelven 10 bytes a partir del quinto byte (el desplazamiento es 4).This returns 10 bytes starting at the fifth byte (offset of 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  

El conjunto de resultados es el siguiente.Here is the result set.

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

Consulte tambiénSee Also

DATALENGTH (Transact-SQL) DATALENGTH (Transact-SQL)
PATINDEX (Transact-SQL) PATINDEX (Transact-SQL)
READTEXT (Transact-SQL) READTEXT (Transact-SQL)
SET TEXTSIZE (Transact-SQL) SET TEXTSIZE (Transact-SQL)
Funciones de texto e imagen (Transact-SQL) Text and Image Functions (Transact-SQL)
UPDATETEXT (Transact-SQL) UPDATETEXT (Transact-SQL)
WRITETEXT (Transact-SQL)WRITETEXT (Transact-SQL)