OracleLob Classe
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.
Représente un type de données binaire d’objet volumineuxLOB stocké sur un serveur Oracle. Cette classe ne peut pas être héritée.
public ref class OracleLob sealed : System::IO::Stream, ICloneable, System::Data::SqlTypes::INullable
public sealed class OracleLob : System.IO.Stream, ICloneable, System.Data.SqlTypes.INullable
type OracleLob = class
inherit Stream
interface ICloneable
interface IDisposable
interface INullable
Public NotInheritable Class OracleLob
Inherits Stream
Implements ICloneable, INullable
- Héritage
- Implémente
Remarques
Une OracleLob diffère d'une OracleBFile en ce que les données sont stockées sur le serveur au lieu d'être dans un fichier physique du système d'exploitation. Il peut également s’agir d’un objet en lecture-écriture, contrairement à un OracleBFile, qui est toujours en lecture seule.
Il OracleLob peut s’agir de l’un de ces OracleType types de données.
| Type de données OracleType | Description |
|---|---|
Blob |
Type de données Oracle BLOB qui contient des données binaires avec une taille maximale de 4 gigaoctets (Go). Cela correspond à un Array type Byte. |
Clob |
Type de données Oracle CLOB qui contient des données de caractères, en fonction du jeu de caractères par défaut sur le serveur, avec une taille maximale de 4 Go. Cela correspond à String. |
NClob |
Type de données Oracle NCLOB qui contient des données de caractères, en fonction du jeu de caractères national sur le serveur avec une taille maximale de 4 Go. Cela correspond à String. |
Un développeur d’applications .NET peut récupérer les valeurs Oracle LOB en types de données de base .NET, tels que Array de type Byte et String, ou le type de données OracleLob spécialisé. La OracleLob classe prend en charge la lecture et l’écriture de données dans Oracle LOB dans la base de données Oracle.
Voici les principales caractéristiques d’un type de données OracleLob qui la distinguent des types de données de base .NET :
Une fois que vous avez récupéré la valeur Oracle de la base de données Oracle
LOBdans la OracleLob classe, vous pouvez modifier lesLOBdonnées dans une transaction ouverte et vos modifications sont directement reflétées dans la base de données. Si vous récupérez la valeur OracleLOBdans un Array type Byte ou String mettez à jour ces tableaux, vos modifications ne sont pas reflétées dans la base de données.Lorsque vous utilisez la OracleLob classe pour accéder à un segment d’une
LOBvaleur, seul ce bloc est passé de la base de données Oracle au client. Lorsque vous utilisez la GetChars méthode pour accéder à un segment d’uneLOBvaleur, le contenu entier de la valeur est transmis de la base de données Oracle au client.
Pour obtenir un OracleLob objet, appelez la GetOracleLob méthode.
Vous pouvez construire une OracleLob valeur NULL au format suivant :
OracleLob myLob = OracleLob.Null;
Dim myLob As OracleLob = OracleLob.Null
Cette technique est principalement utilisée pour tester si un LOB retour du serveur a la valeur NULL, comme l’illustre cet exemple :
if (myLob == OracleLob.Null)
If (myLob = OracleLob.Null) Then
Une valeur NULL LOB se comporte de la même façon qu’un octet de zéro LOB dans ce qui Read réussit et retourne toujours zéro octets.
La sélection d’une LOB colonne qui contient une valeur Null retourne Null.
Vous devez commencer une transaction avant d’obtenir un fichier temporaire LOB. Sinon, il OracleDataReader peut échouer à obtenir des données ultérieurement.
Vous pouvez également ouvrir un temporaire LOB dans Oracle en appelant le DBMS_LOB. PROCÉDURE stockée système CREATETEMPORARY et liaison d’un LOB paramètre de sortie. Côté client, un comportement temporaire LOB se comporte comme une table LOB. Par exemple, pour mettre à jour le temporaire LOB, il doit être placé dans une transaction.
L’exemple suivant montre comment ouvrir un temporaire LOB:
var connection = new OracleConnection("server=MyServer; integrated security=yes;");
connection.Open();
OracleTransaction transaction = connection.BeginTransaction();
OracleCommand command = connection.CreateCommand();
command.Transaction = transaction;
command.CommandText = "declare xx blob; begin dbms_lob.createtemporary(xx, false, 0); :tempblob := xx; end;";
command.Parameters.Add(new OracleParameter("tempblob", OracleType.Blob)).Direction = ParameterDirection.Output;
command.ExecuteNonQuery();
var tempLob = (OracleLob)command.Parameters[0].Value;
var tempbuff = new byte[10000];
tempLob.BeginBatch(OracleLobOpenMode.ReadWrite);
tempLob.Write(tempbuff,0,tempbuff.Length);
tempLob.EndBatch();
command.Parameters.Clear();
command.CommandText = "MyTable.MyProc";
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new OracleParameter("ImportDoc", OracleType.Blob)).Value = tempLob;
command.ExecuteNonQuery();
transaction.Commit();
connection.Close();
Note
La méthode héritée WriteByte échoue si elle est utilisée avec des données de caractères, et une InvalidOperationException méthode est levée. Utilisez plutôt la Write méthode.
Les s temporaires LOBsont fermés uniquement lorsque la connexion est fermée, mais avec le regroupement et le sous-chargement, les s temporaires LOBne se ferment pas. Cela peut être résolu en supprimant le temporaire LOB, en appelant tempLob.Dispose().
Champs
| Nom | Description |
|---|---|
| Null |
Représente un objet Null OracleLob . |
Propriétés
| Nom | Description |
|---|---|
| CanRead |
Obtient une valeur indiquant si le |
| CanSeek |
Obtient une valeur indiquant si les opérations de recherche vers l’avant et vers l’arrière peuvent être effectuées. |
| CanTimeout |
Obtient une valeur qui détermine si le flux actuel peut expirer. (Hérité de Stream) |
| CanWrite |
Retourne toujours la valeur true, que le support prenne en charge l’écriture |
| ChunkSize |
Obtient une valeur indiquant le nombre minimal d’octets à récupérer ou à envoyer au serveur pendant une opération de lecture/écriture. |
| Connection |
Obtient l’utilisé OracleConnection par cette instance du OracleLob. |
| IsBatched |
Obtient une valeur indiquant si une application a appelé la BeginBatch() méthode. |
| IsNull |
Obtient une valeur qui indique si le OracleLob flux est un Null flux. |
| IsTemporary |
Obtient une valeur indiquant si l’objet OracleLob est temporaire |
| Length |
Obtient une valeur qui retourne la taille du OracleLob. |
| LobType |
Obtient une valeur qui retourne le type de |
| Position |
Obtient la position de lecture actuelle dans le OracleLob flux. |
| ReadTimeout |
Obtient ou définit une valeur, en millisecondes, qui détermine la durée pendant laquelle le flux tente de lire avant l’expiration du délai d’attente. (Hérité de Stream) |
| Value |
Obtient la valeur de flux common language runtime équivalente à la valeur sous-jacente. |
| WriteTimeout |
Obtient ou définit une valeur, en millisecondes, qui détermine la durée pendant laquelle le flux tentera d’écrire avant l’expiration du délai d’attente. (Hérité de Stream) |
Méthodes
| Nom | Description |
|---|---|
| Append(OracleLob) |
Ajoute des données de l’élément spécifié |
| BeginBatch() |
Empêche le déclenchement des déclencheurs côté serveur lors de l’exécution de plusieurs opérations de lecture. |
| BeginBatch(OracleLobOpenMode) |
Empêche le déclenchement des déclencheurs côté serveur lors de l’exécution de plusieurs opérations de lecture et d’écriture en mode d’accès spécifié. |
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Commence une opération de lecture asynchrone. (Envisagez d’utiliser ReadAsync(Byte[], Int32, Int32) à la place.) (Hérité de Stream) |
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Commence une opération d’écriture asynchrone. (Envisagez d’utiliser WriteAsync(Byte[], Int32, Int32) à la place.) (Hérité de Stream) |
| Clone() |
Crée un OracleLob objet qui référence le même Oracle |
| Close() |
Ferme le flux actuel et libère les ressources associées au flux. |
| Close() |
Ferme le flux actuel et libère toutes les ressources (telles que les sockets et les handles de fichiers) associées au flux actuel. Au lieu d’appeler cette méthode, vérifiez que le flux est correctement supprimé. (Hérité de Stream) |
| CopyTo(Int64, OracleLob, Int64, Int64) |
Copie de cela OracleLob vers une destination OracleLob avec la quantité de données spécifiée et le décalage source. |
| CopyTo(OracleLob, Int64) |
Copie de ceci OracleLob vers une destination OracleLob avec la quantité de données spécifiée. |
| CopyTo(OracleLob) | |
| CopyTo(Stream, Int32) |
Lit les octets du flux actuel et les écrit dans un autre flux à l’aide d’une taille de mémoire tampon spécifiée. Les deux positions de flux sont avancées par le nombre d’octets copiés. (Hérité de Stream) |
| CopyTo(Stream) |
Lit les octets du flux actuel et les écrit dans un autre flux. Les deux positions de flux sont avancées par le nombre d’octets copiés. (Hérité de Stream) |
| CopyToAsync(Stream, Int32, CancellationToken) |
Lit de manière asynchrone les octets du flux actuel et les écrit dans un autre flux à l’aide d’une taille de mémoire tampon et d’un jeton d’annulation spécifiés. Les deux positions de flux sont avancées par le nombre d’octets copiés. (Hérité de Stream) |
| CopyToAsync(Stream, Int32) |
Lit de façon asynchrone les octets du flux actuel et les écrit dans un autre flux à l’aide d’une taille de mémoire tampon spécifiée. Les deux positions de flux sont avancées par le nombre d’octets copiés. (Hérité de Stream) |
| CopyToAsync(Stream) |
Lit de manière asynchrone les octets du flux actuel et les écrit dans un autre flux. Les deux positions de flux sont avancées par le nombre d’octets copiés. (Hérité de Stream) |
| CreateObjRef(Type) |
Crée un objet qui contient toutes les informations pertinentes requises pour générer un proxy utilisé pour communiquer avec un objet distant. (Hérité de MarshalByRefObject) |
| CreateWaitHandle() |
Obsolète.
Alloue un WaitHandle objet. (Hérité de Stream) |
| Dispose() |
Libère les ressources utilisées par cet objet. |
| Dispose() |
Libère toutes les ressources utilisées par le Stream. (Hérité de Stream) |
| Dispose(Boolean) |
Libère les ressources non managées utilisées par les Stream ressources gérées et libère éventuellement les ressources managées. (Hérité de Stream) |
| EndBatch() |
Permet aux déclencheurs côté serveur de reprendre le déclenchement après avoir effectué plusieurs opérations d’écriture. |
| EndRead(IAsyncResult) |
Attend la fin de la lecture asynchrone en attente. (Envisagez d’utiliser ReadAsync(Byte[], Int32, Int32) à la place.) (Hérité de Stream) |
| EndWrite(IAsyncResult) |
Termine une opération d’écriture asynchrone. (Envisagez d’utiliser WriteAsync(Byte[], Int32, Int32) à la place.) (Hérité de Stream) |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| Erase() |
Efface toutes les données de ce OracleLob. |
| Erase(Int64, Int64) |
Efface la quantité de données spécifiée de ce OracleLob. |
| Flush() |
N’est pas pris en charge actuellement. |
| FlushAsync() |
Efface de façon asynchrone toutes les mémoires tampons de ce flux et entraîne l’écriture de toutes les données mises en mémoire tampon sur l’appareil sous-jacent. (Hérité de Stream) |
| FlushAsync(CancellationToken) |
Efface de façon asynchrone toutes les mémoires tampons de ce flux, entraîne l’écriture de toutes les données mises en mémoire tampon sur l’appareil sous-jacent et surveille les demandes d’annulation. (Hérité de Stream) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetLifetimeService() |
Récupère l’objet de service de durée de vie actuel qui contrôle la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| InitializeLifetimeService() |
Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| MemberwiseClone(Boolean) |
Crée une copie superficielle de l’objet actuel MarshalByRefObject . (Hérité de MarshalByRefObject) |
| ObjectInvariant() |
Obsolète.
Fournit la prise en charge d’un Contract. (Hérité de Stream) |
| Read(Byte[], Int32, Int32) |
Lit une séquence d’octets à partir du flux actuel OracleLob et avance la position dans le flux en fonction du nombre d’octets lus. |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Lit de façon asynchrone une séquence d’octets à partir du flux actuel, avance la position dans le flux en fonction du nombre d’octets lus et surveille les demandes d’annulation. (Hérité de Stream) |
| ReadAsync(Byte[], Int32, Int32) |
Lit de façon asynchrone une séquence d’octets à partir du flux actuel et avance la position dans le flux en fonction du nombre d’octets lus. (Hérité de Stream) |
| ReadByte() |
Lit un octet à partir du flux et avance la position dans le flux d’un octet, ou retourne -1 si à la fin du flux. (Hérité de Stream) |
| Seek(Int64, SeekOrigin) |
Définit la position sur le flux actuel OracleLob . |
| SetLength(Int64) |
Définit la longueur du OracleLob flux sur une valeur inférieure à la longueur actuelle. |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
| Write(Byte[], Int32, Int32) |
Écrit une séquence d’octets dans le flux actuel OracleLob et avance la position actuelle dans ce flux par le nombre d’octets écrits. |
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Écrit de façon asynchrone une séquence d’octets dans le flux actuel, avance la position actuelle dans ce flux par le nombre d’octets écrits et surveille les demandes d’annulation. (Hérité de Stream) |
| WriteAsync(Byte[], Int32, Int32) |
Écrit de façon asynchrone une séquence d’octets dans le flux actuel et avance la position actuelle dans ce flux par le nombre d’octets écrits. (Hérité de Stream) |
| WriteByte(Byte) |
Écrit un octet à la position actuelle du OracleLob flux et avance la position dans le flux d’un octet. |
| WriteByte(Byte) |
Écrit un octet à la position actuelle dans le flux et avance la position dans le flux d’un octet. (Hérité de Stream) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IDisposable.Dispose() |
Libère toutes les ressources utilisées par le Stream. (Hérité de Stream) |