Partage via


OracleBFile Classe

Définition

Représente un objet OracleBFile managé conçu pour fonctionner avec le type de données BFILE Oracle. Cette classe ne peut pas être héritée.

public ref class OracleBFile sealed : System::IO::Stream, ICloneable, System::Data::SqlTypes::INullable
public sealed class OracleBFile : System.IO.Stream, ICloneable, System.Data.SqlTypes.INullable
type OracleBFile = class
    inherit Stream
    interface ICloneable
    interface IDisposable
    interface INullable
type OracleBFile = class
    inherit Stream
    interface ICloneable
    interface INullable
    interface IDisposable
Public NotInheritable Class OracleBFile
Inherits Stream
Implements ICloneable, INullable
Héritage
Implémente

Remarques

Le type de données Oracle BFILE est un type de données Oracle LOB qui contient une référence à des données binaires d’une taille maximale de 4 gigaoctets. Un Oracle BFILE diffère des autres types de données Oracle LOB en ce que ses données sont stockées dans un fichier physique dans le système d’exploitation plutôt que sur le serveur. Notez que le type de BFILE données fournit un accès en lecture seule aux données. Par conséquent, les méthodes orientées écriture héritées de la Stream classe ne sont pas prises en charge.

D’autres caractéristiques d’un BFILE type de données qui le distinguent d’un LOB type de données sont les suivantes :

  • Il contient des données non structurées.

  • Il prend en charge la fragmentation côté serveur.

  • Il utilise une sémantique de copie de référence. Par exemple, si vous effectuez une opération de copie sur un BFILE, seul le BFILE localisateur (qui est une référence au fichier) est copié. Les données du fichier ne sont pas copiées.

Le BFILE type de données doit être utilisé pour référencer LOBdes s qui sont de grande taille et qui, par conséquent, ne sont pas pratiques à stocker dans la base de données. Il existe une surcharge de client, de serveur et de communication pour l’utilisation d’un BFILE type de données par rapport au type de LOB données. Il est plus efficace d’accéder à un BFILE si vous n’avez besoin d’obtenir qu’une petite quantité de données. Il est plus efficace d’accéder aux résidents LOBde la base de données si vous avez besoin d’obtenir l’objet entier.

Chaque objet non NULL OracleBFile est associé à deux entités qui définissent l’emplacement du fichier physique sous-jacent :

  • Un objet DIRECTORY Oracle, qui est un alias de base de données pour un répertoire du système de fichiers.

  • Le nom du fichier physique sous-jacent, qui se trouve dans le répertoire associé à l'objet DIRECTORY.

Une fois qu’un BFILE est créé, vous pouvez récupérer son localisateur sous la forme d’un OracleBFile objet à l’aide des ExecuteReader méthodes ou ExecuteScalar .

Pour obtenir un OracleBFile objet, appelez la GetOracleBFile méthode .

Le fichier physique auquel un OracleBFile objet est associé n’a pas besoin d’exister tant que vous n’avez pas tenté d’y accéder. Une application peut lier un OracleBFile à un fichier inexistant, créer le fichier physique à l’emplacement attendu, puis appeler Read.

Toute tentative d’accès à un fermé OracleBFile à l’aide des Read méthodes ou Seek rouvre automatiquement un OracleBFile flux.

L’exemple C# suivant montre comment créer un BFILE dans une table Oracle, puis le récupérer sous la forme d’un OracleBFile objet. L’exemple illustre l’utilisation de l’objet OracleDataReader et des OracleBFileSeek méthodes et Read .

private void GetOracleBFile(string connectionString)
{
    //Create and open the connection.
    using (OracleConnection connection = new OracleConnection(connectionString))
    {
        connection.Open();

        //Create and execute the commands.
        OracleCommand command = connection.CreateCommand();
        command.CommandText = "CREATE OR REPLACE DIRECTORY TestDir AS 'c:\\bfiles'";
        command.ExecuteNonQuery();
        command.CommandText = "CREATE TABLE TestTable(col1 number, col2 BFILE)";
        command.ExecuteNonQuery();
        command.CommandText = "INSERT INTO TestTable VALUES ('2', BFILENAME('TESTDIR', 'File.jpg'))";
        command.ExecuteNonQuery();
        command.CommandText = "SELECT * FROM TestTable";

        //Read the BFile data.
        byte[] buffer = new byte[100];
        OracleDataReader dataReader = command.ExecuteReader();
        using (dataReader)
        {
            if (dataReader.Read())
            {
                OracleBFile BFile = dataReader.GetOracleBFile(1);
                using (BFile)
                {
                    BFile.Seek(0, SeekOrigin.Begin);
                    BFile.Read(buffer, 0, 100);
                }
            }
        }
    }
    return;
}

Pour plus d’informations sur la création et l’utilisation d’un oracle BFILE, consultez la rubrique appropriée dans votre documentation Oracle.

Notes

Les BeginWriteméthodes , EndWriteet WriteByte , qui sont héritées de la System.IO.Stream classe , ne sont pas prises en charge, car le BFILE type de données est en lecture seule.

Champs

Null

Représente un objet OracleBFile null qui n'est pas lié à un fichier physique.

Propriétés

CanRead

Obtient une valeur indiquant si le flux BFILE peut être lu.

CanSeek

Obtient une valeur indiquant si des opérations de recherche vers l'avant ou vers l'arrière peuvent être effectuées.

CanTimeout

Obtient une valeur qui détermine si le flux actuel peut dépasser le délai d'attente.

(Hérité de Stream)
CanWrite

Obtient une valeur indiquant si l'objet prend l'écriture en charge.

Connection

Obtient le OracleConnection utilisé par cette instance de OracleBFile.

DirectoryName

Obtient le nom de l'objet DIRECTORY, auquel un objet OracleBFile est associé.

FileExists

Obtient une valeur indiquant si un fichier physique contenant des données BFILE existe dans le système d'exploitation.

FileName

Obtient le nom de BFILE sans le chemin d'accès.

IsNull

Obtient une valeur qui indique si OracleBFile est un flux Null.

Length

Obtient une valeur qui retourne la longueur en octets du fichier physique auquel l'objet OracleBFile est associé.

Position

Obtient la position de lecture actuelle dans le flux OracleBFile.

ReadTimeout

Obtient ou définit une valeur, exprimée en millisecondes, qui définit la durée pendant laquelle le flux tentera d’effectuer la lecture avant dépassement du délai d’attente.

(Hérité de Stream)
Value

Obtient un Array de type Byte contenant les données OracleBFile.

WriteTimeout

Obtient ou définit une valeur, exprimée en millisecondes, qui définit la durée pendant laquelle le flux tentera d’écrire des données avant l’expiration du délai d’attente.

(Hérité de Stream)

Méthodes

BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Débute une opération de lecture asynchrone. (Utilisez ReadAsync(Byte[], Int32, Int32) à la place.)

(Hérité de Stream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Débute une opération d'écriture asynchrone. (Utilisez WriteAsync(Byte[], Int32, Int32) à la place.)

(Hérité de Stream)
Clone()

Crée une copie de cet objet OracleBFile associé au même fichier physique que l'objet d'origine.

Close()

Ferme le flux actuel et libère toutes les ressources (comme les sockets et les handles de fichiers) associées à celui-ci. Au lieu d'appeler cette méthode, assurez-vous que le flux est correctement supprimé.

(Hérité de Stream)
CopyTo(Int64, OracleLob, Int64, Int64)

Copie de cet objet OracleBFile vers un OracleLob de destination selon la quantité de données, l'offset source et l'offset de destination spécifiés.

CopyTo(OracleLob)

Copie le contenu entier de cet objet OracleBFile au début d'un OracleLob de destination.

CopyTo(OracleLob, Int64)

Copie le contenu entier de cet objet OracleBFile vers un OracleLob de destination, à l'offset spécifié.

CopyTo(Stream)

Lit les octets du flux actuel et les écrit dans un autre flux. Les positions des deux flux sont avancées par le nombre d’octets copiés.

(Hérité de Stream)
CopyTo(Stream, Int32)

Lit tous les octets du flux actuel et les écrit dans un autre flux, en utilisant une taille de mémoire tampon spécifiée. Les positions des deux flux sont avancées par le nombre d’octets copiés.

(Hérité de Stream)
CopyToAsync(Stream)

Lit de façon asynchrone tous les octets du flux actuel et les écrit dans un autre flux. Les positions des deux flux sont avancées par le nombre d’octets copiés.

(Hérité de Stream)
CopyToAsync(Stream, CancellationToken)

Lit de façon asynchrone les octets du flux actuel et les écrit dans un autre flux, en utilisant un jeton d’annulation spécifié. Les positions des deux flux sont avancées par le nombre d’octets copiés.

(Hérité de Stream)
CopyToAsync(Stream, Int32)

Lit de façon asynchrone tous les octets du flux actuel et les écrit dans un autre flux, en utilisant une taille de mémoire tampon spécifiée. Les positions des deux flux sont avancées par le nombre d’octets copiés.

(Hérité de Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Lit de façon asynchrone les octets du flux actuel et les écrit dans un autre flux, en utilisant une taille de mémoire tampon et d'un jeton d'annulation spécifiés. Les positions des deux flux sont avancées par le nombre d’octets copiés.

(Hérité de Stream)
CreateObjRef(Type)

Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
CreateWaitHandle()
Obsolète.
Obsolète.
Obsolète.

Alloue un objet WaitHandle.

(Hérité de Stream)
Dispose()

Libère toutes les ressources utilisées par cet objet.

Dispose()

Libère toutes les ressources utilisées par Stream.

(Hérité de Stream)
Dispose(Boolean)

Libère les ressources non managées utilisées par Stream et libère éventuellement les ressources managées.

(Hérité de Stream)
DisposeAsync()

Libère de façon asynchrone les ressources non managées utilisées par Stream.

(Hérité de Stream)
EndRead(IAsyncResult)

Attend que la requête asynchrone en attente se termine. (Utilisez ReadAsync(Byte[], Int32, Int32) à la place.)

(Hérité de Stream)
EndWrite(IAsyncResult)

Termine une opération d'écriture asynchrone. (Utilisez 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)
Flush()

Actuellement non pris en charge.

FlushAsync()

Efface de façon asynchrone toutes les mémoires tampons pour ce flux et provoque l'écriture des 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 pour ce flux, provoque l'écriture des données mises en mémoire tampon sur l'appareil sous-jacent et surveille les requêtes d'annulation.

(Hérité de Stream)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetLifetimeService()
Obsolète.

Récupère l'objet de service de durée de vie en cours qui contrôle la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
InitializeLifetimeService()
Obsolète.

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 Object actuel.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l'objet MarshalByRefObject actuel.

(Hérité de MarshalByRefObject)
ObjectInvariant()
Obsolète.

Assure la prise en charge d'un Contract.

(Hérité de Stream)
Read(Byte[], Int32, Int32)

Lit une séquence d'octets à partir du flux OracleBFile actuel et avance la position dans le flux du nombre d'octets lus.

Read(Span<Byte>)

En cas de remplacement dans une classe dérivée, lit une séquence d'octets dans le flux actuel et avance la position dans le flux du nombre d'octets lus.

(Hérité de Stream)
ReadAsync(Byte[], Int32, Int32)

Lit de façon asynchrone une séquence d'octets dans le flux actuel et avance la position dans le flux du nombre d'octets lus.

(Hérité de Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

Lit de façon asynchrone une séquence d'octets dans le flux actuel, avance la position dans le flux du nombre d'octets lus et surveille les demandes d'annulation.

(Hérité de Stream)
ReadAsync(Memory<Byte>, CancellationToken)

Lit de façon asynchrone une séquence d'octets dans le flux actuel, avance la position dans le flux du nombre d'octets lus et surveille les demandes d'annulation.

(Hérité de Stream)
ReadAtLeast(Span<Byte>, Int32, Boolean)

Lit au moins un nombre minimal d’octets à partir du flux actuel et avance la position dans le flux par le nombre d’octets lus.

(Hérité de Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

Lit de manière asynchrone au moins un nombre minimal 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)
ReadByte()

Lit un octet du flux et avance d'un octet la position au sein du flux, ou retourne -1 si la fin du flux a été atteinte.

(Hérité de Stream)
ReadExactly(Byte[], Int32, Int32)

Lit le nombre d’octets count du flux actuel et avance la position dans le flux.

(Hérité de Stream)
ReadExactly(Span<Byte>)

Lit les octets du flux actuel et avance la position dans le flux jusqu’à ce que soit buffer rempli.

(Hérité de Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

Lit de manière asynchrone le nombre d’octets count du flux actuel, avance la position dans le flux et surveille les demandes d’annulation.

(Hérité de Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

Lit de manière asynchrone les octets du flux actuel, avance la position dans le flux jusqu’à ce que le buffer soit rempli et surveille les demandes d’annulation.

(Hérité de Stream)
Seek(Int64, SeekOrigin)

Définit la position dans le flux OracleBFile actuel.

SetFileName(String, String)

Lie l'objet OracleBFile à un fichier différent dans le système d'exploitation.

SetLength(Int64)

Non pris en charge actuellement.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
Write(Byte[], Int32, Int32)

Non pris en charge actuellement.

Write(ReadOnlySpan<Byte>)

En cas de remplacement dans une classe dérivée, écrit une séquence d'octets dans le flux actuel et avance la position actuelle dans ce flux du nombre d'octets écrits.

(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 le flux du nombre d'octets écrits.

(Hérité de Stream)
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 du nombre d'octets écrits et surveille les demandes d'annulation.

(Hérité de Stream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Écrit de façon asynchrone une séquence d'octets dans le flux actuel, avance la position actuelle dans ce flux du nombre d'octets écrits et surveille les demandes d'annulation.

(Hérité de Stream)
WriteByte(Byte)

Écrit un octet à la position actuelle dans le flux et avance d'un octet la position dans le flux.

(Hérité de Stream)

Implémentations d’interfaces explicites

IDisposable.Dispose()

Libère toutes les ressources utilisées par Stream.

(Hérité de Stream)

Méthodes d’extension

CopyToAsync(Stream, PipeWriter, CancellationToken)

Lit de façon asynchrone les octets du Stream et les écrit dans le PipeWriter spécifié en utilisant un jeton d’annulation.

S’applique à