OracleBFile 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 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 leBFILE
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 LOB
des 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 LOB
de 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 BeginWrite
méthodes , EndWrite
et 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 |
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 |
FileName |
Obtient le nom de |
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 |
ReadExactly(Span<Byte>) |
Lit les octets du flux actuel et avance la position dans le flux jusqu’à ce que soit |
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Lit de manière asynchrone le nombre d’octets |
ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Lit de manière asynchrone les octets du flux actuel, avance la position dans le flux jusqu’à ce que le |
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. |