READTEXT (Transact-SQL)

Lee los valores text, ntext o image de una columna text, ntext o image; comienza a partir de un desplazamiento especificado y lee el número de bytes determinado.

Nota importanteImportante

Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Utilice la función SUBSTRING en su lugar.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

READTEXT { table.column text_ptr offset size } [ HOLDLOCK ]

Argumentos

  • table**.**column
    Es el nombre de la tabla y de la columna donde se va a leer. Los nombres de tablas y columnas se deben ajustar a las reglas de los identificadores. Es necesario especificar los nombres de la tabla y de la columna; sin embargo, es opcional especificar el nombre de la base de datos y del propietario.

  • text_ptr
    Es un puntero de texto válido. El parámetro text_ptr debe ser de tipo binary(16).

  • offset
    Es el número de bytes (cuando se utilizan los tipos de datos text o image) o de caracteres (cuando se utiliza el tipo de datos ntext) que se va a omitir antes de comenzar a leer los datos text, image o ntext.

  • size
    Es el número de bytes (cuando se utilizan los tipos de datos text o image) o de caracteres (cuando se utiliza el tipo de datos ntext) de los datos que se van a leer. Si size es 0, se leen 4 KB de datos.

  • HOLDLOCK
    Hace que se bloquee el valor de texto para lectura hasta el final de la transacción. Otros usuarios pueden leer el valor, pero no pueden modificarlo.

Notas

Use la función TEXTPTR para obtener un valor de text_ptr válido.TEXTPTR devuelve un puntero para la columna text, ntext o image de la fila especificada o para la columna text, ntext o image de la última fila devuelta por la consulta si devuelve más de una fila. Debido a que TEXTPTR devuelve una cadena binaria de 16 bytes, se recomienda declarar una variable local para que contenga el puntero de texto y, a continuación, utilizar la variable con READTEXT. Para obtener más información acerca de la declaración de una variable local, vea DECLARE @local\_variable (Transact-SQL).

En SQL Server, pueden existir punteros de texto consecutivos, aunque quizás no sean válidos. Par obtener más información acerca de la opción text in row, vea sp_tableoption (Transact-SQL). Para obtener más información acerca de la invalidación de punteros de texto, vea sp_invalidate_textptr (Transact-SQL).

El valor de la función @@TEXTSIZE reemplaza el tamaño especificado para READTEXT si es menor que éste. La función @@TEXTSIZE especifica el límite que establece la instrucción SET TEXTSIZE sobre el número de bytes de datos que se va a devolver. Para obtener más información acerca de cómo establecer la configuración de sesión para TEXTSIZE, vea SET TEXTSIZE (Transact-SQL).

Permisos

Los permisos READTEXT se conceden de manera predeterminada a los usuarios con permisos SELECT en la tabla especificada. Los permisos se pueden transferir cuando se transfieren los permisos SELECT.

Ejemplos

En el siguiente ejemplo se lee desde el carácter dos al veintiséis de la columna pr_info de la tabla pub_info.

[!NOTA]

Para ejecutar este ejemplo, es necesario instalar la base de datos de ejemplo pubs. Para obtener más información acerca de la instalación de la base de datos de ejemplo pubs, vea Descargar las bases de datos de ejemplo Northwind y pubs.

USE pubs;
GO
DECLARE @ptrval varbinary(16);
SELECT @ptrval = TEXTPTR(pr_info) 
   FROM pub_info pr INNER JOIN publishers p
      ON pr.pub_id = p.pub_id 
      AND p.pub_name = 'New Moon Books'
READTEXT pub_info.pr_info @ptrval 1 25;
GO