Aracılığıyla paylaş


OracleBFile Sınıf

Tanım

Oracle BFILE veri türüyle çalışmak için tasarlanmış bir yönetilen OracleBFile nesneyi temsil eder. Bu sınıf devralınamaz.

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
Devralma
Uygulamalar

Açıklamalar

Oracle BFILE veri türü, en fazla 4 gigabayt boyutunda ikili verilere başvuru içeren bir Oracle LOB veri türüdür. Oracle BFILE , verilerinin sunucu yerine işletim sistemindeki fiziksel bir dosyada depolanması bakımından diğer Oracle LOB veri türlerinden farklıdır. BFILE Veri türünün verilere salt okunur erişim sağladığını unutmayın. Bu nedenle, sınıfından devralınan Stream yazma odaklı yöntemler desteklenmez.

Bir BFILE veri türünün veri türünden ayıran LOB diğer özellikleri şunlardır:

  • Yapılandırılmamış veriler içerir.

  • Sunucu tarafı öbekle işlemini destekler.

  • Başvuru kopyalama semantiğini kullanır. Örneğin, üzerinde BFILEbir kopyalama işlemi gerçekleştirirseniz, yalnızca BFILE bulucu (dosya başvurusudur) kopyalanır. Dosyadaki veriler kopyalanmaz.

Veri BFILE türü, boyutu büyük olan öğelere başvurmak LOBiçin kullanılmalı ve bu nedenle veritabanında depolamak pratik olmamalıdır. Veri türüyle karşılaştırıldığındaLOB, bir BFILE veri türünü kullanmak için istemci, sunucu ve iletişim yükü vardır. Yalnızca az miktarda veri almanız gerekiyorsa öğesine erişmek BFILE daha verimlidir. Nesnenin tamamını almanız gerekiyorsa veritabanında yerleşik olarak bulunanlara LOBerişmek daha verimlidir.

NULL OracleBFile olmayan her nesne, temel alınan fiziksel dosyanın konumunu tanımlayan iki varlıkla ilişkilendirilir:

  • Dosya sistemindeki bir dizinin veritabanı diğer adı olan Oracle DIRECTORY nesnesi ve

  • DIRECTORY nesnesiyle ilişkili dizinde bulunan temel alınan fiziksel dosyanın dosya adı.

oluşturulduktan BFILE sonra, bulucusunu veya ExecuteScalar yöntemlerini kullanarak ExecuteReader bir OracleBFile nesne biçiminde alabilirsiniz.

Bir OracleBFile nesnesi almak için yöntemini çağırın GetOracleBFile .

Bir OracleBFile nesnenin ilişkilendirdiği fiziksel dosyanın, siz nesneye erişmeye çalışana kadar var olması gerekmez. Bir uygulama var olmayan bir OracleBFile dosyaya bağlayabilir, fiziksel dosyayı beklenen konumda oluşturabilir ve ardından çağrısı Readyapabilir.

veya Seek yöntemlerini kullanarak Read kapalı OracleBFile bir akışa erişme girişimleri akışı otomatik olarak yeniden açarOracleBFile.

Aşağıdaki C# örneği, Oracle tablosunda nasıl oluşturabileceğinizi BFILE ve bunu bir OracleBFile nesne biçiminde nasıl alabileceğinizi gösterir. Örnekte nesnesinin ve ve Read yöntemlerininSeekOracleDataReaderOracleBFilekullanımı gösterilmektedir.

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;
}

Oracle oluşturma ve kullanma hakkında daha fazla bilgi için Oracle BFILEbelgelerinizde uygun konuya bakın.

Not

BeginWriteSınıfından devralınan System.IO.Stream , EndWriteve WriteByte yöntemleri, veri türü salt okunur olduğundan BFILE desteklenmez.

Alanlar

Null

Fiziksel bir dosyaya bağlı olmayan null OracleBFile bir nesneyi temsil eder.

Özellikler

CanRead

Akışın BFILE okunup okunamayacağını belirten bir değer alır.

CanSeek

İleri ve geri arama işlemlerinin gerçekleştirilip gerçekleştirilemeyeceğini belirten bir değer alır.

CanTimeout

Geçerli akışın zaman aşımına neden olup olmadığını belirleyen bir değer alır.

(Devralındığı yer: Stream)
CanWrite

Nesnenin yazmayı destekleyip desteklemediğini belirten bir değer alır.

Connection

öğesinin OracleConnection bu örneği tarafından kullanılan öğesini OracleBFilealır.

DirectoryName

Bir OracleBFile nesnenin ilişkilendirildiği DIRECTORY nesnesinin adını alır.

FileExists

İşletim sisteminde veri içeren BFILE fiziksel bir dosyanın var olup olmadığını belirten bir değer alır.

FileName

Yolu olmayan öğesinin BFILE adını alır.

IsNull

öğesinin bir akış olup olmadığını OracleBFile belirten bir Null değer alır.

Length

Nesnenin ilişkilendirildiği fiziksel dosyanın bayt cinsinden uzunluğunu döndüren OracleBFile bir değer alır.

Position

Akıştaki geçerli okuma konumunu OracleBFile alır.

ReadTimeout

Akışın zaman aşımına uğramadan önce ne kadar süreyle okumayı deneyeceğini belirleyen bir değeri milisaniye cinsinden alır veya ayarlar.

(Devralındığı yer: Stream)
Value

Verileri içeren OracleBFile bir Array tür Byte alır.

WriteTimeout

Akışın zaman aşımına uğramadan önce ne kadar süreyle yazmaya çalışacağını belirleyen bir değeri milisaniye cinsinden alır veya ayarlar.

(Devralındığı yer: Stream)

Yöntemler

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

Zaman uyumsuz bir okuma işlemi başlatır. (Bunun yerine kullanmayı ReadAsync(Byte[], Int32, Int32) düşünün.)

(Devralındığı yer: Stream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Zaman uyumsuz bir yazma işlemi başlatır. (Bunun yerine kullanmayı WriteAsync(Byte[], Int32, Int32) düşünün.)

(Devralındığı yer: Stream)
Clone()

Özgün dosyayla aynı fiziksel dosyayla ilişkili bu OracleBFile nesnenin bir kopyasını oluşturur.

Close()

Geçerli akışı kapatır ve geçerli akışla ilişkili tüm kaynakları (yuvalar ve dosya tanıtıcıları gibi) serbest bırakır. Bu yöntemi çağırmak yerine akışın düzgün bir şekilde atıldığından emin olun.

(Devralındığı yer: Stream)
CopyTo(Int64, OracleLob, Int64, Int64)

Belirtilen miktarda veri, kaynak uzaklığı ve hedef uzaklığı olan bir hedefe OracleLob bundan OracleBFile kopyalanır.

CopyTo(OracleLob)

Bunun OracleBFile tüm içeriğini hedefin OracleLobbaşına kopyalar.

CopyTo(OracleLob, Int64)

Bunun OracleBFile tüm içeriğini belirtilen uzaklıkta bir hedefe OracleLob kopyalar.

CopyTo(Stream)

Geçerli akıştan baytları okur ve başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CopyTo(Stream, Int32)

Geçerli akıştan baytları okur ve belirtilen arabellek boyutunu kullanarak başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CopyToAsync(Stream)

Geçerli akıştan gelen baytları zaman uyumsuz olarak okur ve başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CopyToAsync(Stream, CancellationToken)

Geçerli akıştan gelen baytları zaman uyumsuz olarak okur ve belirtilen iptal belirtecini kullanarak başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CopyToAsync(Stream, Int32)

Geçerli akıştan baytları zaman uyumsuz olarak okur ve belirtilen arabellek boyutunu kullanarak başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Geçerli akıştan baytları zaman uyumsuz olarak okur ve belirtilen arabellek boyutu ve iptal belirtecini kullanarak başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CreateObjRef(Type)

Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur.

(Devralındığı yer: MarshalByRefObject)
CreateWaitHandle()
Geçersiz.
Geçersiz.
Geçersiz.

Bir WaitHandle nesne ayırır.

(Devralındığı yer: Stream)
Dispose()

Bu nesne tarafından kullanılan tüm kaynakları serbest bırakır.

Dispose()

Stream tarafından kullanılan tüm kaynakları serbest bırakır.

(Devralındığı yer: Stream)
Dispose(Boolean)

Stream tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır.

(Devralındığı yer: Stream)
DisposeAsync()

tarafından Streamkullanılan yönetilmeyen kaynakları zaman uyumsuz olarak serbest bırakır.

(Devralındığı yer: Stream)
EndRead(IAsyncResult)

Bekleyen zaman uyumsuz okumanın tamamlanmasını bekler. (Bunun yerine kullanmayı ReadAsync(Byte[], Int32, Int32) düşünün.)

(Devralındığı yer: Stream)
EndWrite(IAsyncResult)

Zaman uyumsuz yazma işlemini sonlandırır. (Bunun yerine kullanmayı WriteAsync(Byte[], Int32, Int32) düşünün.)

(Devralındığı yer: Stream)
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
Flush()

Şu anda desteklenmiyor.

FlushAsync()

Bu akış için tüm arabellekleri zaman uyumsuz olarak temizler ve arabelleğe alınan verilerin temel alınan cihaza yazılmasına neden olur.

(Devralındığı yer: Stream)
FlushAsync(CancellationToken)

Bu akış için tüm arabellekleri zaman uyumsuz olarak temizler, arabelleğe alınan verilerin temel alınan cihaza yazılmasına neden olur ve iptal isteklerini izler.

(Devralındığı yer: Stream)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetLifetimeService()
Geçersiz.

Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır.

(Devralındığı yer: MarshalByRefObject)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
InitializeLifetimeService()
Geçersiz.

Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır.

(Devralındığı yer: MarshalByRefObject)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
MemberwiseClone(Boolean)

Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur.

(Devralındığı yer: MarshalByRefObject)
ObjectInvariant()
Geçersiz.

için Contractdestek sağlar.

(Devralındığı yer: Stream)
Read(Byte[], Int32, Int32)

Geçerli OracleBFile akıştan bir bayt dizisi okur ve okunan bayt sayısına göre akış içindeki konumu ilerletir.

Read(Span<Byte>)

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli akıştan bir bayt dizisi okur ve okunan bayt sayısı kadar akış içindeki konumu ilerletir.

(Devralındığı yer: Stream)
ReadAsync(Byte[], Int32, Int32)

Geçerli akıştaki bayt dizisini zaman uyumsuz olarak okur ve okunan bayt sayısına göre akış içindeki konumu ilerletir.

(Devralındığı yer: Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

Geçerli akıştan bir bayt dizisini zaman uyumsuz olarak okur, okunan bayt sayısına göre akış içindeki konumu ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
ReadAsync(Memory<Byte>, CancellationToken)

Geçerli akıştan bir bayt dizisini zaman uyumsuz olarak okur, okunan bayt sayısına göre akış içindeki konumu ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
ReadAtLeast(Span<Byte>, Int32, Boolean)

Geçerli akıştan en az bayt sayısını okur ve okunan bayt sayısına göre akış içindeki konumu ilerletir.

(Devralındığı yer: Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

Geçerli akıştan en az en az sayıda bayt zaman uyumsuz olarak okur, okunan bayt sayısı kadar akış içindeki konumu ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
ReadByte()

Akıştan bir bayt okur ve akış içindeki konumu bir bayt ilerletir veya akışın sonundaysa -1 döndürür.

(Devralındığı yer: Stream)
ReadExactly(Byte[], Int32, Int32)

count Geçerli akıştan bayt sayısını okur ve akış içindeki konumu ilerletir.

(Devralındığı yer: Stream)
ReadExactly(Span<Byte>)

Geçerli akıştan baytları okur ve doldurulana kadar buffer akış içindeki konumu ilerletir.

(Devralındığı yer: Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

Geçerli akıştaki bayt sayısını zaman uyumsuz olarak okur count , akış içindeki konumu ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

Geçerli akıştaki baytları zaman uyumsuz olarak okur, doldurulana kadar buffer akış içindeki konumu ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
Seek(Int64, SeekOrigin)

Geçerli OracleBFile akış üzerindeki konumu ayarlar.

SetFileName(String, String)

OracleBFile nesnesini işletim sistemindeki farklı bir dosyaya bağlar.

SetLength(Int64)

Şu anda desteklenmiyor.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
Write(Byte[], Int32, Int32)

Şu anda desteklenmiyor.

Write(ReadOnlySpan<Byte>)

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli akışa bir bayt dizisi yazar ve bu akıştaki geçerli konumu yazılan bayt sayısı kadar ilerletir.

(Devralındığı yer: Stream)
WriteAsync(Byte[], Int32, Int32)

Zaman uyumsuz olarak geçerli akışa bir bayt dizisi yazar ve bu akıştaki geçerli konumu yazılan bayt sayısına göre ilerletir.

(Devralındığı yer: Stream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

Zaman uyumsuz olarak geçerli akışa bir bayt dizisi yazar, bu akıştaki geçerli konumu yazılan bayt sayısına göre ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Zaman uyumsuz olarak geçerli akışa bir bayt dizisi yazar, bu akıştaki geçerli konumu yazılan bayt sayısına göre ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
WriteByte(Byte)

Akıştaki geçerli konuma bir bayt yazar ve akış içindeki konumu bir bayt ilerletir.

(Devralındığı yer: Stream)

Belirtik Arabirim Kullanımları

IDisposable.Dispose()

Stream tarafından kullanılan tüm kaynakları serbest bırakır.

(Devralındığı yer: Stream)

Uzantı Metotları

CopyToAsync(Stream, PipeWriter, CancellationToken)

baytlarını Stream zaman uyumsuz olarak okur ve bir iptal belirteci kullanarak belirtilen PipeWriteröğesine yazar.

Şunlara uygulanır