OracleBFile Classe

Définition

Représente un objet OracleBFile managé conçu pour fonctionner avec le type de données BFILE Oracle.Represents a managed OracleBFile object designed to work with the Oracle BFILE data type. Cette classe ne peut pas être héritée.This class cannot be inherited.

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 INullable
    interface IDisposable
Public NotInheritable Class OracleBFile
Inherits Stream
Implements ICloneable, INullable
Héritage
OracleBFile
Héritage
Implémente

Remarques

Le type BFILE de données Oracle est un LOB type de données Oracle qui contient une référence à des données binaires d’une taille maximale de 4 gigaoctets.The Oracle BFILE data type is an Oracle LOB data type that contains a reference to binary data with a maximum size of 4 gigabytes. Oracle BFILE diffère des autres types de LOB données Oracle en ce que ses données sont stockées dans un fichier physique dans le système d’exploitation et non sur le serveur.An Oracle BFILE differs from other Oracle LOB data types in that its data is stored in a physical file in the operating system instead of on the server. Notez que le BFILE type de données fournit un accès en lecture seule aux données.Note that the BFILE data type provides read-only access to data. Par conséquent, les méthodes orientées écriture héritées de la Stream classe ne sont pas prises en charge.Therefore, write-oriented methods inherited from the Stream class are not supported.

Les autres caractéristiques d' BFILE un type de données qui le distinguent d’un LOB type de données sont les suivantes :Other characteristics of a BFILE data type that distinguish it from a LOB data type are that it:

  • Il contient des données non structurées.Contains unstructured data.

  • Il prend en charge la fragmentation côté serveur.Supports server-side chunking.

  • Il utilise une sémantique de copie de référence.Uses reference copy semantics. Par exemple, si vous effectuez une opération de copie sur BFILEun, seul BFILE le localisateur (qui est une référence au fichier) est copié.For example, if you perform a copy operation on a BFILE, only the BFILE locator (which is a reference to the file) is copied. Les données du fichier ne sont pas copiées.The data in the file is not copied.

Le BFILE type de données doit être utilisé pour LOBfaire référence à des savesets de grande taille et, par conséquent, il n’est pas pratique de stocker dans la base de données.The BFILE data type should be used for referencing LOBs that are large in size, and therefore, not practical to store in the database. La surcharge du client, du serveur et de la BFILE LOB communication est due à l’utilisation d’un type de données par rapport au type de données.There is client, server, and communication overhead for using a BFILE data type compared to the LOB data type. Il est plus efficace d’accéder à BFILE un si vous devez uniquement obtenir une petite quantité de données.It is more efficient to access a BFILE if you only need to obtain a small amount of data. Il est plus efficace d’accéder aux s résidants LOBdans la base de données si vous devez obtenir l’objet entier.It is more efficient to access database-resident LOBs if you need to obtain the entire object.

Chaque objet non null OracleBFile est associé à deux entités qui définissent l’emplacement du fichier physique sous-jacent :Each non-NULL OracleBFile object is associated with two entities that define the location of the underlying physical file:

  • Un objet DIRECTORY Oracle, qui est un alias de base de données pour un répertoire du système de fichiers.An Oracle DIRECTORY object, which is a database alias for a directory in the file system, and

  • Le nom du fichier physique sous-jacent, qui se trouve dans le répertoire associé à l'objet DIRECTORY.The file name of the underlying physical file, which is located in the directory associated with the DIRECTORY object.

Après la BFILE OracleBFile ExecuteScalar création d’un, vous pouvez récupérer son localisateur sous la forme d’un objet à l’aide des méthodes ou. ExecuteReaderAfter a BFILE is created, you can retrieve its locator in the form of an OracleBFile object using the ExecuteReader or ExecuteScalar methods.

Pour obtenir un OracleBFile objet, appelez la GetOracleBFile méthode.To obtain an OracleBFile object, call the GetOracleBFile method.

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.The physical file that an OracleBFile object is associated with does not need to exist until you attempt to access it. Une application peut lier un OracleBFile à un fichier inexistant, créer le fichier physique à l’emplacement attendu, puis appeler. ReadAn application can bind an OracleBFile to a nonexistent file, create the physical file in the expected location, and then call Read.

Toute tentative d’accès à un OracleBFile fermé à Read l' Seek aide des méthodes ou réouvre automatiquement un OracleBFile flux.Any attempt to access a closed OracleBFile using the Read or Seek methods reopens an OracleBFile stream automatically.

L’exemple C# suivant montre comment vous pouvez créer un BFILE dans une table Oracle, puis le récupérer sous la forme d’un OracleBFile objet.The following C# example demonstrates how you can create a BFILE in an Oracle table, and then retrieve it in the form of an OracleBFile object. L’exemple illustre l’utilisation de l' OracleDataReader objet OracleBFile Seek et des méthodes Read et.The example demonstrates the use of the OracleDataReader object and the OracleBFileSeek and Read methods.

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' BFILEutilisation d’Oracle, consultez la rubrique appropriée dans votre documentation Oracle.For more information about creating and using an Oracle BFILE, see the appropriate topic in your Oracle documentation.

Notes

Les BeginWriteméthodes EndWrite, et WriteByte , qui sont héritées de la System.IO.Stream classe, ne sont pas prises en BFILE charge, car le type de données est en lecture seule.The BeginWrite, EndWrite, and WriteByte methods, which are inherited from the System.IO.Stream class, are not supported because the BFILE data type is read-only.

Champs

Null

Représente un objet OracleBFile null qui n'est pas lié à un fichier physique.Represents a null OracleBFile object that is not bound to a physical file.

Propriétés

CanRead

Obtient une valeur indiquant si le flux BFILE peut être lu.Gets a value indicating whether the BFILE stream can be read.

CanSeek

Obtient une valeur indiquant si des opérations de recherche vers l'avant ou vers l'arrière peuvent être effectuées.Gets a value indicating whether forward-seek and backward-seek operations can be performed.

CanTimeout

Obtient une valeur qui détermine si le flux actuel peut dépasser le délai d'attente.Gets a value that determines whether the current stream can time out.

(Hérité de Stream)
CanWrite

Obtient une valeur indiquant si l'objet prend l'écriture en charge.Gets a value indicating whether the object supports writing.

Connection

Obtient le OracleConnection utilisé par cette instance de OracleBFile.Gets the OracleConnection used by this instance of the OracleBFile.

DirectoryName

Obtient le nom de l'objet DIRECTORY, auquel un objet OracleBFile est associé.Gets the name of the DIRECTORY object, with which an OracleBFile object is associated.

FileExists

Obtient une valeur indiquant si un fichier physique contenant des données BFILE existe dans le système d'exploitation.Gets a value indicating whether a physical file containing BFILE data exists in the operating system.

FileName

Obtient le nom de BFILE sans le chemin d'accès.Gets the name of the BFILE without the path.

IsNull

Obtient une valeur qui indique si OracleBFile est un flux Null.Gets a value that indicates whether the OracleBFile is a Null stream.

Length

Obtient une valeur qui retourne la longueur en octets du fichier physique auquel l'objet OracleBFile est associé.Gets a value that returns the length in bytes of the physical file with which the OracleBFile object is associated.

Position

Obtient la position de lecture actuelle dans le flux OracleBFile.Gets the current read position in the OracleBFile stream.

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'arriver à expiration.Gets or sets a value, in milliseconds, that determines how long the stream will attempt to read before timing out.

(Hérité de Stream)
Value

Obtient un Array de type Byte contenant les données OracleBFile.Gets an Array of type Byte that contains the OracleBFile data.

WriteTimeout

Obtient ou définit une valeur exprimée en millisecondes qui définit la durée pendant laquelle le flux tentera d'inscrire des données avant d'arriver à expiration.Gets or sets a value, in milliseconds, that determines how long the stream will attempt to write before timing out.

(Hérité de Stream)

Méthodes

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

Débute une opération de lecture asynchrone.Begins an asynchronous read operation. (Utilisez ReadAsync(Byte[], Int32, Int32) à la place.)(Consider using ReadAsync(Byte[], Int32, Int32) instead.)

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

Débute une opération d'écriture asynchrone.Begins an asynchronous write operation. (Utilisez WriteAsync(Byte[], Int32, Int32) à la place.)(Consider using WriteAsync(Byte[], Int32, Int32) instead.)

(Hérité de Stream)
Clone()

Crée une copie de cet objet OracleBFile associé au même fichier physique que l'objet d'origine.Creates a copy of this OracleBFile object associated with the same physical file as the original.

Close()

Ferme le flux actuel et libère toutes les ressources (comme les sockets et les handles de fichiers) associées à celui-ci.Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream. Au lieu d'appeler cette méthode, assurez-vous que le flux est correctement supprimé.Instead of calling this method, ensure that the stream is properly disposed.

(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.Copies from this OracleBFile to a destination OracleLob with the specified amount of data, the source offset, and the destination offset.

CopyTo(OracleLob)

Copie le contenu entier de cet objet OracleBFile au début d'un OracleLob de destination.Copies the entire contents of this OracleBFile to the beginning of a destination OracleLob.

CopyTo(OracleLob, Int64)

Copie le contenu entier de cet objet OracleBFile vers un OracleLob de destination, à l'offset spécifié.Copies the entire contents of this OracleBFile to a destination OracleLob at the specified offset.

CopyTo(Stream)

Lit les octets du flux actuel et les écrit dans un autre flux.Reads the bytes from the current stream and writes them to another stream.

(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.Reads the bytes from the current stream and writes them to another stream, using a specified buffer size.

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

Lit de façon asynchrone tous les octets du flux actuel et les écrit dans un autre flux.Asynchronously reads the bytes from the current stream and writes them to another stream.

(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é.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified cancellation token.

(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.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size.

(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.Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size and cancellation token.

(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.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Hérité de MarshalByRefObject)
CreateWaitHandle()

Alloue un objet WaitHandle.Allocates a WaitHandle object.

(Hérité de Stream)
Dispose()

Libère toutes les ressources utilisées par cet objet.Releases all the resources that are used by this object.

Dispose(Boolean)

Libère les ressources non managées utilisées par Stream et libère éventuellement les ressources managées.Releases the unmanaged resources used by the Stream and optionally releases the managed resources.

(Hérité de Stream)
DisposeAsync()

Libère de façon asynchrone les ressources non managées utilisées par Stream.Asynchronously releases the unmanaged resources used by the Stream.

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

Attend que la requête asynchrone en attente se termine.Waits for the pending asynchronous read to complete. (Utilisez ReadAsync(Byte[], Int32, Int32) à la place.)(Consider using ReadAsync(Byte[], Int32, Int32) instead.)

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

Termine une opération d'écriture asynchrone.Ends an asynchronous write operation. (Utilisez WriteAsync(Byte[], Int32, Int32) à la place.)(Consider using WriteAsync(Byte[], Int32, Int32) instead.)

(Hérité de Stream)
Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
Flush()

Actuellement non pris en charge.Not currently supported.

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.Asynchronously clears all buffers for this stream and causes any buffered data to be written to the underlying device.

(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.Asynchronously clears all buffers for this stream, causes any buffered data to be written to the underlying device, and monitors cancellation requests.

(Hérité de Stream)
GetHashCode()

Sert de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetLifetimeService()

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.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Hérité de MarshalByRefObject)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(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.Obtains a lifetime service object to control the lifetime policy for this instance.

(Hérité de MarshalByRefObject)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

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

Crée une copie superficielle de l'objet MarshalByRefObject actuel.Creates a shallow copy of the current MarshalByRefObject object.

(Hérité de MarshalByRefObject)
ObjectInvariant()

Assure la prise en charge d'un Contract.Provides support for a 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.Reads a sequence of bytes from the current OracleBFile stream and advances the position within the stream by the number of bytes read.

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.When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.

(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.Asynchronously reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.

(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.Asynchronously reads a sequence of bytes from the current stream, advances the position within the stream by the number of bytes read, and monitors cancellation requests.

(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.Asynchronously reads a sequence of bytes from the current stream, advances the position within the stream by the number of bytes read, and monitors cancellation requests.

(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.Reads a byte from the stream and advances the position within the stream by one byte, or returns -1 if at the end of the stream.

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

Définit la position dans le flux OracleBFile actuel.Sets the position on the current OracleBFile stream.

SetFileName(String, String)

Lie l'objet OracleBFile à un fichier différent dans le système d'exploitation.Binds the OracleBFile object to a different file in the operating system.

SetLength(Int64)

Actuellement non pris en charge.Not currently supported.

ToString()

Retourne une chaîne qui représente l'objet actif.Returns a string that represents the current object.

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

Actuellement non pris en charge.Not currently supported.

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.When overridden in a derived class, writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.

(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.Asynchronously writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.

(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.Asynchronously writes a sequence of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.

(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.Asynchronously writes a sequence of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.

(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.Writes a byte to the current position in the stream and advances the position within the stream by one byte.

(Hérité de Stream)

Implémentations d’interfaces explicites

IDisposable.Dispose()

Libère toutes les ressources utilisées par Stream.Releases all resources used by the Stream.

(Hérité de Stream)

S’applique à