Partage via


READTEXT (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Lit les valeurs text, ntext ou image d’une colonne text, ntext ou image. Commence la lecture à la position de décalage spécifiée et lit le nombre d’octets indiqué.

Important

Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. À la place, utilisez la fonction SUBSTRING.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

table . colonne
Nom de la table et de la colonne dont le contenu doit être lu. Les noms de la table et de la colonne doivent suivre les règles applicables aux identificateurs. Les noms de la table et de la colonne sont obligatoires ; ceux de la base de données et du propriétaire sont facultatifs.

text_ptr
Pointeur de texte valide. text_ptr doit être de type binary(16).

offset
Est le nombre d’octets lorsque les types de données text ou image sont utilisés. Cela peut aussi être le nombre d’octets des caractères, lorsque le type de données ntext est utilisé, à ignorer avant de commencer la lecture des données text, image ou ntext.

size Est le nombre d’octets lorsque les types de données text ou image sont utilisés. C’est également le nombre d’octets des caractères lorsque le type de données ntext est utilisé pour les données à lire. Si size a pour valeur 0, 4 Ko de données sont lues.

HOLDLOCK
Demande de verrouiller la valeur texte en lecture jusqu'à la fin de la transaction. Les autres utilisateurs peuvent lire la valeur, mais pas la modifier.

Notes

Utilisez la fonction TEXTPTR pour obtenir une valeur text_ptr valide. TEXTPTR retourne un pointeur vers la colonne text, ntext ou image dans la ligne spécifiée. TEXTPRT peut également retourner un pointeur vers la colonne text, ntext ou image dans la dernière ligne que la requête retourne si celle-ci retourne plusieurs lignes. Comme la fonction TEXTPTR retourne une chaîne binaire de 16 octets, il est conseillé de déclarer une variable locale pour stocker le pointeur de texte et utiliser cette variable dans READTEXT. Pour plus d'informations sur la déclaration d'une variable locale, consultez DECLARE @local_variable (Transact-SQL).

Dans SQL Server, il peut exister des pointeurs de texte dans la ligne non valides. Pour plus d’informations sur l’option text in row, consultez sp_tableoption (Transact-SQL). Pour plus d’informations sur l’invalidation des pointeurs de texte, consultez sp_invalidate_textptr (Transact-SQL).

La valeur de la fonction @@TEXTSIZE remplace la taille indiquée dans READTEXT si elle est inférieure à cette dernière. La fonction @@TEXTSIZE spécifie la limite du nombre d’octets de données à retourner, défini à l’aide de l’instruction SET TEXTSIZE. Pour plus d’informations sur la définition du paramètre de session pour TEXTSIZE, consultez SET TEXTSIZE (Transact-SQL).

Autorisations

Les autorisations READTEXT reviennent par défaut aux utilisateurs ayant des autorisations SELECT sur la table indiquée. Ces autorisations peuvent être transférées lorsque les autorisations SELECT sont transférées.

Exemples

L’exemple suivant lit les données du deuxième au vingt-sixième caractère de la colonne pr_info de la table pub_info.

Notes

Pour exécuter cet exemple, vous devez installer l’exemple de base de données 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  

Voir aussi

@@TEXTSIZE (Transact-SQL)
UPDATETEXT (Transact-SQL)
WRITETEXT (Transact-SQL)