Partager via


OracleLob.SetLength(Int64) Méthode

Définition

Définit la longueur du flux OracleLob selon une valeur inférieure à la longueur actuelle.

public:
 override void SetLength(long value);
public override void SetLength (long value);
override this.SetLength : int64 -> unit
Public Overrides Sub SetLength (value As Long)

Paramètres

value
Int64

Longueur souhaitée du flux actuel en octets OracleLob. Pour les types de données CLOB et NCLOB, il doit s'agir d'un nombre pair.

Exceptions

Une valeur spécifiée dans le paramètre value pour un type de données CLOB ou NCLOB n'est pas paire.

- ou -

Une valeur spécifiée dans le paramètre value est inférieure à zéro ou supérieure à 4 giga-octets.

L'opération ne fait pas partie d'une transaction, l'objet OracleLob est de type null ou la connexion est fermée.

L'objet était fermé ou supprimé.

Une erreur Oracle s'est produite.

Remarques

Une tentative d’augmentation de la OracleLob longueur du flux échoue et retourne « Message : ORA-22926 : la longueur de coupe spécifiée est supérieure à la longueur de la valeur métier actuelle » à partir du serveur Oracle.

Un flux doit prendre en charge à la fois l’écriture et la recherche de SetLength pour fonctionner.

Le fournisseur de données .NET Framework pour Oracle gère toutes les CLOB données et NCLOB en unicode. Par conséquent, lorsque vous accédez aux CLOB types de données et NCLOB , vous devez toujours traiter le nombre d’octets, où chaque caractère est de 2 octets. Par exemple, si une chaîne de texte contenant trois caractères est enregistrée en tant que NCLOB sur un serveur Oracle où le jeu de caractères est de 4 octets par caractère et que vous effectuez une SetLength opération, vous spécifiez la longueur de la chaîne sous la forme de 6 octets, bien qu’elle soit stockée sous forme de 12 octets sur le serveur.

Pour écrire dans , LOBvous devez avoir récupéré le à l’aide de LOB la clause FOR UPDATE dans l’instruction SQL SELECT, et vous devez avoir une transaction locale démarrée.

Notes

Une opération d’écriture dans une lecture seule LOB peut réussir, mais ne met pas à jour sur LOB le serveur. Dans ce cas, toutefois, la copie locale du LOB est mise à jour. Par conséquent, les opérations de lecture ultérieures sur l’objet OracleLob peuvent retourner les résultats de l’opération d’écriture.

S’applique à