OracleBFile Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt een beheerd OracleBFile object dat is ontworpen om te werken met het Oracle-gegevenstype BFILE . Deze klasse kan niet worden overgenomen.
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
- Overname
- Implementeringen
Opmerkingen
Het Oracle-gegevenstype BFILE is een Oracle-gegevenstype LOB dat een verwijzing naar binaire gegevens bevat met een maximale grootte van 4 gigabyte. Een Oracle BFILE verschilt van andere Oracle-gegevenstypen LOB omdat de gegevens worden opgeslagen in een fysiek bestand in het besturingssysteem in plaats van op de server.
BFILE Het gegevenstype biedt alleen-lezentoegang tot gegevens. Schrijfgeoriënteerde methoden die zijn overgenomen van de Stream klasse, worden daarom niet ondersteund.
Andere kenmerken van een BFILE gegevenstype die het onderscheiden van een LOB gegevenstype zijn:
Bevat ongestructureerde gegevens.
Ondersteunt segmentering aan de serverzijde.
Maakt gebruik van referentiekopie-semantiek. Als u bijvoorbeeld een kopieerbewerking uitvoert op een
BFILE, wordt alleen deBFILElocator (een verwijzing naar het bestand) gekopieerd. De gegevens in het bestand worden niet gekopieerd.
Het BFILE gegevenstype moet worden gebruikt voor verwijzingen LOBnaar s die groot zijn, en daarom niet praktisch om op te slaan in de database. Er is sprake van client-, server- en communicatieoverhead voor het gebruik van een BFILE gegevenstype in vergelijking met het LOB gegevenstype. Het is efficiënter om toegang te krijgen tot een BFILE als u slechts een kleine hoeveelheid gegevens hoeft te verkrijgen. Het is efficiënter om toegang te krijgen tot database-residenten LOBals u het hele object moet verkrijgen.
Elk niet-NULL-object OracleBFile is gekoppeld aan twee entiteiten die de locatie van het onderliggende fysieke bestand definiëren:
Een Oracle DIRECTORY-object, een databasealias voor een map in het bestandssysteem, en
De bestandsnaam van het onderliggende fysieke bestand, dat zich in de map bevindt die is gekoppeld aan het MAP-object.
Nadat een BFILE object is gemaakt, kunt u de locator ophalen in de vorm van een OracleBFile object met behulp van de ExecuteReader of ExecuteScalar methoden.
Als u een OracleBFile object wilt verkrijgen, roept u de GetOracleBFile methode aan.
Het fysieke bestand waaraan een OracleBFile object is gekoppeld, hoeft pas te bestaan als u het probeert te openen. Een toepassing kan een OracleBFile aan een niet-bestaand bestand binden, het fysieke bestand op de verwachte locatie maken en vervolgens aanroepen Read.
Elke poging om een gesloten OracleBFile toegang te krijgen met behulp van de Read of Seek methoden, opent automatisch een OracleBFile stream opnieuw.
In het volgende C#-voorbeeld ziet u hoe u een BFILE in een Oracle-tabel kunt maken en deze vervolgens kunt ophalen in de vorm van een OracleBFile object. In het voorbeeld ziet u het gebruik van het OracleDataReader object en de OracleBFileSeek methoden 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;
}
Zie het juiste onderwerp in uw Oracle-documentatie voor meer informatie over het maken en gebruiken van een Oracle BFILE.
Note
De BeginWritemethoden , EndWriteen WriteByte methoden die worden overgenomen van de System.IO.Stream klasse, worden niet ondersteund omdat het BFILE gegevenstype het kenmerk Alleen-lezen heeft.
Velden
| Name | Description |
|---|---|
| Null |
Vertegenwoordigt een null-object OracleBFile dat niet is gebonden aan een fysiek bestand. |
Eigenschappen
| Name | Description |
|---|---|
| CanRead |
Hiermee wordt een waarde opgehaald die aangeeft of de |
| CanSeek |
Hiermee wordt een waarde opgehaald die aangeeft of voorwaartse en achterwaartse zoekbewerkingen kunnen worden uitgevoerd. |
| CanTimeout |
Hiermee wordt een waarde opgehaald die bepaalt of er een time-out optreedt voor de huidige stroom. (Overgenomen van Stream) |
| CanWrite |
Hiermee wordt een waarde opgehaald die aangeeft of het object het schrijven ondersteunt. |
| Connection |
Hiermee haalt u het OracleConnection gebruik op van dit exemplaar van de OracleBFile. |
| DirectoryName |
Hiermee haalt u de naam van het DIRECTORY-object op waarmee een OracleBFile object is gekoppeld. |
| FileExists |
Hiermee wordt een waarde opgehaald die aangeeft of er een fysiek bestand met |
| FileName |
Hiermee haalt u de naam op van de |
| IsNull |
Hiermee wordt een waarde opgehaald die aangeeft of het OracleBFile een Null stroom is. |
| Length |
Hiermee wordt een waarde opgehaald die de lengte retourneert in bytes van het fysieke bestand waaraan het OracleBFile object is gekoppeld. |
| Position |
Hiermee haalt u de huidige leespositie in de OracleBFile stroom op. |
| ReadTimeout |
Hiermee wordt een waarde opgehaald of ingesteld, in milliseconden, die bepaalt hoe lang de stroom probeert te lezen voordat er een time-out optreedt. (Overgenomen van Stream) |
| Value |
Hiermee wordt een Array type Byte opgehaald dat de OracleBFile gegevens bevat. |
| WriteTimeout |
Hiermee wordt een waarde opgehaald of ingesteld, in milliseconden, die bepaalt hoe lang de stream probeert te schrijven voordat er een time-out optreedt. (Overgenomen van Stream) |
Methoden
| Name | Description |
|---|---|
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Begint een asynchrone leesbewerking. (Overweeg in plaats daarvan om te gebruiken ReadAsync(Byte[], Int32, Int32) .) (Overgenomen van Stream) |
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Hiermee wordt een asynchrone schrijfbewerking gestart. (Overweeg in plaats daarvan om te gebruiken WriteAsync(Byte[], Int32, Int32) .) (Overgenomen van Stream) |
| Clone() |
Hiermee maakt u een kopie van dit OracleBFile object dat is gekoppeld aan hetzelfde fysieke bestand als het origineel. |
| Close() |
Hiermee sluit u de huidige stroom en worden alle resources (zoals sockets en bestandsingangen) die aan de huidige stroom zijn gekoppeld, vrijgegeven. In plaats van deze methode aan te roepen, moet u ervoor zorgen dat de stream correct wordt verwijderd. (Overgenomen van Stream) |
| CopyTo(Int64, OracleLob, Int64, Int64) |
Kopieën van deze OracleBFile naar een bestemming OracleLob met de opgegeven hoeveelheid gegevens, de bron offset en de doel offset. |
| CopyTo(OracleLob, Int64) |
Hiermee kopieert u de volledige inhoud ervan OracleBFile naar een bestemming OracleLob op de opgegeven offset. |
| CopyTo(OracleLob) |
Kopieert de volledige inhoud hiervan OracleBFile naar het begin van een bestemming OracleLob. |
| CopyTo(Stream, Int32) |
Leest de bytes uit de huidige stream en schrijft ze naar een andere stroom, met behulp van een opgegeven buffergrootte. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyTo(Stream) |
Leest de bytes uit de huidige stream en schrijft ze naar een andere stream. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyToAsync(Stream, Int32, CancellationToken) |
Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stroom, met behulp van een opgegeven buffergrootte en annuleringstoken. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyToAsync(Stream, Int32) |
Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stroom, met behulp van een opgegeven buffergrootte. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyToAsync(Stream) |
Asynchroon leest de bytes uit de huidige stream en schrijft ze naar een andere stream. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CreateObjRef(Type) |
Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object. (Overgenomen van MarshalByRefObject) |
| CreateWaitHandle() |
Verouderd.
Wijst een WaitHandle object toe. (Overgenomen van Stream) |
| Dispose() |
Alle resources die door dit object worden gebruikt, worden vrijgegeven. |
| Dispose() |
Alle resources die worden gebruikt door de Stream. (Overgenomen van Stream) |
| Dispose(Boolean) |
Publiceert de niet-beheerde resources die worden gebruikt door de Stream beheerde resources en brengt eventueel de beheerde resources vrij. (Overgenomen van Stream) |
| EndRead(IAsyncResult) |
Wacht totdat de asynchrone leesbewerking is voltooid. (Overweeg in plaats daarvan om te gebruiken ReadAsync(Byte[], Int32, Int32) .) (Overgenomen van Stream) |
| EndWrite(IAsyncResult) |
Hiermee wordt een asynchrone schrijfbewerking beëindigd. (Overweeg in plaats daarvan om te gebruiken WriteAsync(Byte[], Int32, Int32) .) (Overgenomen van Stream) |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| Flush() |
Momenteel niet ondersteund. |
| FlushAsync() |
Asynchroon wist alle buffers voor deze stroom en zorgt ervoor dat eventuele gebufferde gegevens naar het onderliggende apparaat worden geschreven. (Overgenomen van Stream) |
| FlushAsync(CancellationToken) |
Asynchroon wist alle buffers voor deze stroom, zorgt ervoor dat gebufferde gegevens naar het onderliggende apparaat worden geschreven en annuleringsaanvragen worden gecontroleerd. (Overgenomen van Stream) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetLifetimeService() |
Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd. (Overgenomen van MarshalByRefObject) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| InitializeLifetimeService() |
Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren. (Overgenomen van MarshalByRefObject) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| MemberwiseClone(Boolean) |
Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object. (Overgenomen van MarshalByRefObject) |
| ObjectInvariant() |
Verouderd.
Biedt ondersteuning voor een Contract. (Overgenomen van Stream) |
| Read(Byte[], Int32, Int32) |
Hiermee wordt een reeks bytes uit de huidige OracleBFile stroom gelezen en wordt de positie binnen de stream verplaatst door het aantal bytes dat is gelezen. |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchroon leest een reeks bytes uit de huidige stroom, verplaatst de positie binnen de stream door het aantal gelezen bytes en bewaakt annuleringsaanvragen. (Overgenomen van Stream) |
| ReadAsync(Byte[], Int32, Int32) |
Asynchroon leest een reeks bytes uit de huidige stroom en wordt de positie binnen de stream verplaatst door het aantal gelezen bytes. (Overgenomen van Stream) |
| ReadByte() |
Hiermee leest u een byte uit de stroom en wordt de positie binnen de stream met één byte vooruit gelezen of wordt -1 geretourneerd als aan het einde van de stream. (Overgenomen van Stream) |
| Seek(Int64, SeekOrigin) |
Hiermee stelt u de positie op de huidige OracleBFile stroom in. |
| SetFileName(String, String) |
Verbindt het OracleBFile object met een ander bestand in het besturingssysteem. |
| SetLength(Int64) |
Momenteel niet ondersteund. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
| Write(Byte[], Int32, Int32) |
Momenteel niet ondersteund. |
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchroon schrijft een reeks bytes naar de huidige stroom, verplaatst de huidige positie binnen deze stream door het aantal geschreven bytes en bewaakt annuleringsaanvragen. (Overgenomen van Stream) |
| WriteAsync(Byte[], Int32, Int32) |
Asynchroon schrijft een reeks bytes naar de huidige stroom en wordt de huidige positie binnen deze stroom verplaatst door het aantal geschreven bytes. (Overgenomen van Stream) |
| WriteByte(Byte) |
Hiermee schrijft u een byte naar de huidige positie in de stroom en wordt de positie binnen de stream met één byte vooruit. (Overgenomen van Stream) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Alle resources die worden gebruikt door de Stream. (Overgenomen van Stream) |