OracleBFile Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar ett hanterat OracleBFile objekt som är utformat för att fungera med Oracle-datatypen BFILE . Det går inte att ärva den här klassen.
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
- Arv
- Implementeringar
Kommentarer
Oracle-datatypen BFILE är en Oracle-datatyp LOB som innehåller en referens till binära data med en maximal storlek på 4 gigabyte. Ett Oracle BFILE skiljer sig från andra Oracle-datatyper LOB eftersom dess data lagras i en fysisk fil i operativsystemet i stället för på servern. Observera att BFILE datatypen ger skrivskyddad åtkomst till data. Därför stöds inte skrivorienterade metoder som ärvts Stream från klassen.
Andra egenskaper hos en BFILE datatyp som skiljer den från en LOB datatyp är att den:
Innehåller ostrukturerade data.
Stöder segmentering på serversidan.
Använder referenskopieringssemantik. Om du till exempel utför en kopieringsåtgärd på en
BFILEkopieras endastBFILEpositioneraren (som är en referens till filen). Data i filen kopieras inte.
Datatypen BFILE ska användas för att referera LOBtill s som är stora och därför inte praktiska att lagra i databasen. Det finns klient-, server- och kommunikationskostnader för att använda en BFILE datatyp jämfört LOB med datatypen. Det är mer effektivt att komma åt en BFILE om du bara behöver hämta en liten mängd data. Det är mer effektivt att komma åt databasinbyggda LOBobjekt om du behöver hämta hela objektet.
Varje icke-NULL-objekt OracleBFile är associerat med två entiteter som definierar platsen för den underliggande fysiska filen:
Ett Oracle DIRECTORY-objekt, som är ett databasalias för en katalog i filsystemet, och
Filnamnet på den underliggande fysiska filen, som finns i katalogen som är associerad med DIRECTORY-objektet.
När en BFILE har skapats kan du hämta dess positionerare i form av ett OracleBFile objekt med hjälp ExecuteReader av metoderna eller ExecuteScalar .
Anropa metoden för GetOracleBFile att hämta ett OracleBFile objekt.
Den fysiska fil som ett OracleBFile objekt är associerat med behöver inte finnas förrän du försöker komma åt den. Ett program kan binda en OracleBFile till en obefintlig fil, skapa den fysiska filen på den förväntade platsen och sedan anropa Read.
Alla försök att komma åt en stängd OracleBFile med hjälp av Read metoderna eller Seek öppnar en OracleBFile dataström automatiskt.
I följande C#-exempel visas hur du kan skapa en BFILE i en Oracle-tabell och sedan hämta den i form av ett OracleBFile objekt. Exemplet visar hur OracleDataReader objektet och OracleBFileSeek metoderna och Read används.
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;
}
Mer information om hur du skapar och använder ett Oracle BFILEfinns i lämpligt ämne i Oracle-dokumentationen.
Note
Metoderna BeginWrite, EndWriteoch WriteByte , som ärvs från System.IO.Stream klassen, stöds inte eftersom BFILE datatypen är skrivskyddad.
Fält
| Name | Description |
|---|---|
| Null |
Representerar ett null-objekt OracleBFile som inte är bundet till en fysisk fil. |
Egenskaper
| Name | Description |
|---|---|
| CanRead |
Hämtar ett värde som anger om |
| CanSeek |
Hämtar ett värde som anger om åtgärder för framåtsökning och bakåtsökning kan utföras. |
| CanTimeout |
Hämtar ett värde som avgör om den aktuella strömmen kan överskrida tidsgränsen. (Ärvd från Stream) |
| CanWrite |
Hämtar ett värde som anger om objektet stöder skrivning. |
| Connection |
Hämtar den OracleConnection som används av den här instansen OracleBFileav . |
| DirectoryName |
Hämtar namnet på DIRECTORY-objektet som ett OracleBFile objekt är associerat med. |
| FileExists |
Hämtar ett värde som anger om det finns en fysisk fil som innehåller |
| FileName |
Hämtar namnet på |
| IsNull |
Hämtar ett värde som anger om OracleBFile är en Null ström. |
| Length |
Hämtar ett värde som returnerar längden i byte för den fysiska fil som OracleBFile objektet är associerat med. |
| Position |
Hämtar den aktuella läspositionen OracleBFile i strömmen. |
| ReadTimeout |
Hämtar eller anger ett värde i millisekunder som avgör hur länge strömmen ska försöka läsa innan tidsgränsen nås. (Ärvd från Stream) |
| Value |
Hämtar en Array typ Byte som innehåller OracleBFile data. |
| WriteTimeout |
Hämtar eller anger ett värde i millisekunder som avgör hur länge strömmen ska försöka skriva innan tidsgränsen nås. (Ärvd från Stream) |
Metoder
| Name | Description |
|---|---|
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Påbörjar en asynkron läsåtgärd. (Överväg att använda ReadAsync(Byte[], Int32, Int32) i stället.) (Ärvd från Stream) |
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Påbörjar en asynkron skrivåtgärd. (Överväg att använda WriteAsync(Byte[], Int32, Int32) i stället.) (Ärvd från Stream) |
| Clone() |
Skapar en kopia av det här OracleBFile objektet som är associerat med samma fysiska fil som originalet. |
| Close() |
Stänger den aktuella strömmen och släpper alla resurser (till exempel socketar och filhandtag) som är associerade med den aktuella strömmen. I stället för att anropa den här metoden kontrollerar du att dataströmmen tas bort korrekt. (Ärvd från Stream) |
| CopyTo(Int64, OracleLob, Int64, Int64) |
Kopierar från detta OracleBFile till ett mål OracleLob med den angivna mängden data, källförskjutningen och målförskjutningen. |
| CopyTo(OracleLob, Int64) |
Kopierar hela innehållet i detta OracleBFile till ett mål OracleLob vid den angivna förskjutningen. |
| CopyTo(OracleLob) |
Kopierar hela innehållet i detta OracleBFile till början av ett mål OracleLob. |
| CopyTo(Stream, Int32) |
Läser byteen från den aktuella strömmen och skriver dem till en annan ström med en angiven buffertstorlek. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CopyTo(Stream) |
Läser byteen från den aktuella strömmen och skriver dem till en annan ström. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CopyToAsync(Stream, Int32, CancellationToken) |
Läser asynkront byte från den aktuella strömmen och skriver dem till en annan dataström med en angiven buffertstorlek och annulleringstoken. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CopyToAsync(Stream, Int32) |
Läser asynkront byte från den aktuella strömmen och skriver dem till en annan ström med en angiven buffertstorlek. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CopyToAsync(Stream) |
Läser asynkront byte från den aktuella strömmen och skriver dem till en annan ström. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CreateObjRef(Type) |
Skapar ett objekt som innehåller all relevant information som krävs för att generera en proxy som används för att kommunicera med ett fjärrobjekt. (Ärvd från MarshalByRefObject) |
| CreateWaitHandle() |
Föråldrad.
Allokerar ett WaitHandle objekt. (Ärvd från Stream) |
| Dispose() |
Frigör alla resurser som används av det här objektet. |
| Dispose() |
Släpper alla resurser som används av Stream. (Ärvd från Stream) |
| Dispose(Boolean) |
Släpper de ohanterade resurser som används av Stream och släpper eventuellt de hanterade resurserna. (Ärvd från Stream) |
| EndRead(IAsyncResult) |
Väntar på att den väntande asynkrona läsningen ska slutföras. (Överväg att använda ReadAsync(Byte[], Int32, Int32) i stället.) (Ärvd från Stream) |
| EndWrite(IAsyncResult) |
Avslutar en asynkron skrivåtgärd. (Överväg att använda WriteAsync(Byte[], Int32, Int32) i stället.) (Ärvd från Stream) |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| Flush() |
Stöds inte för närvarande. |
| FlushAsync() |
Rensar asynkront alla buffertar för den här strömmen och gör att buffrade data skrivs till den underliggande enheten. (Ärvd från Stream) |
| FlushAsync(CancellationToken) |
Rensar asynkront alla buffertar för den här strömmen, gör att buffrade data skrivs till den underliggande enheten och övervakar begäranden om annullering. (Ärvd från Stream) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetLifetimeService() |
Hämtar det aktuella livslängdstjänstobjektet som styr livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| InitializeLifetimeService() |
Hämtar ett tjänstobjekt för livslängd för att styra livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| MemberwiseClone(Boolean) |
Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet. (Ärvd från MarshalByRefObject) |
| ObjectInvariant() |
Föråldrad.
Tillhandahåller stöd för en Contract. (Ärvd från Stream) |
| Read(Byte[], Int32, Int32) |
Läser en sekvens med byte från den aktuella OracleBFile dataströmmen och flyttar positionen inom dataströmmen med antalet lästa byte. |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Läser asynkront en sekvens med byte från den aktuella strömmen, avancerar positionen i strömmen med antalet lästa byte och övervakar begäranden om annullering. (Ärvd från Stream) |
| ReadAsync(Byte[], Int32, Int32) |
Läser asynkront en sekvens med byte från den aktuella strömmen och avancerar positionen i strömmen med antalet lästa byte. (Ärvd från Stream) |
| ReadByte() |
Läser en byte från strömmen och flyttar positionen i strömmen med en byte, eller returnerar -1 om i slutet av strömmen. (Ärvd från Stream) |
| Seek(Int64, SeekOrigin) |
Anger positionen på den aktuella OracleBFile strömmen. |
| SetFileName(String, String) |
Binder objektet OracleBFile till en annan fil i operativsystemet. |
| SetLength(Int64) |
Stöds inte för närvarande. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
| Write(Byte[], Int32, Int32) |
Stöds inte för närvarande. |
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Skriver asynkront en sekvens med byte till den aktuella strömmen, avancerar den aktuella positionen i den här strömmen med antalet skrivna byte och övervakar begäranden om annullering. (Ärvd från Stream) |
| WriteAsync(Byte[], Int32, Int32) |
Skriver asynkront en sekvens med byte till den aktuella strömmen och avancerar den aktuella positionen i den här strömmen med antalet skrivna byte. (Ärvd från Stream) |
| WriteByte(Byte) |
Skriver en byte till den aktuella positionen i strömmen och flyttar positionen inom strömmen med en byte. (Ärvd från Stream) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Släpper alla resurser som används av Stream. (Ärvd från Stream) |