OracleLob.SetLength(Int64) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 , LOB
vous 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.