Bagikan melalui


OracleBFile Kelas

Definisi

Mewakili objek terkelola OracleBFile yang dirancang untuk bekerja dengan jenis data Oracle BFILE . Kelas ini tidak dapat diwariskan.

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
Warisan
Penerapan

Keterangan

Jenis data Oracle BFILE adalah jenis data Oracle LOB yang berisi referensi ke data biner dengan ukuran maksimum 4 gigabyte. Oracle BFILE berbeda dari jenis data Oracle LOB lainnya karena datanya disimpan dalam file fisik dalam sistem operasi alih-alih di server. Perhatikan bahwa BFILE jenis data menyediakan akses baca-saja ke data. Oleh karena itu, metode berorientasi tulis yang diwarisi dari Stream kelas tidak didukung.

Karakteristik lain dari BFILE jenis data yang membedakannya dari LOB jenis data adalah:

  • Berisi data yang tidak terstruktur.

  • Mendukung chunking sisi server.

  • Menggunakan semantik salinan referensi. Misalnya, jika Anda melakukan operasi salin pada BFILE, hanya pencari BFILE lokasi (yang merupakan referensi ke file) yang disalin. Data dalam file tidak disalin.

Jenis BFILE data harus digunakan untuk mereferensikan yang berukuran LOBbesar, dan oleh karena itu, tidak praktis untuk disimpan dalam database. Ada overhead klien, server, dan komunikasi untuk menggunakan BFILE jenis data dibandingkan LOB dengan jenis data. Lebih efisien untuk mengakses BFILE jika Anda hanya perlu mendapatkan sejumlah kecil data. Lebih efisien untuk mengakses residen LOBdatabase jika Anda perlu mendapatkan seluruh objek.

Setiap objek non-NULL OracleBFile dikaitkan dengan dua entitas yang menentukan lokasi file fisik yang mendasar:

  • Objek Oracle DIRECTORY, yang merupakan alias database untuk direktori dalam sistem file, dan

  • Nama file dari file fisik yang mendasarinya, yang terletak di direktori yang terkait dengan objek DIRECTORY.

BFILE Setelah dibuat, Anda dapat mengambil pencari lokasinya dalam bentuk OracleBFile objek menggunakan ExecuteReader metode atau ExecuteScalar .

Untuk mendapatkan OracleBFile objek, panggil GetOracleBFile metode .

File fisik yang OracleBFile dikaitkan dengan objek tidak perlu ada sampai Anda mencoba mengaksesnya. Aplikasi dapat mengikat OracleBFile ke file yang tidak ada, membuat file fisik di lokasi yang diharapkan, lalu memanggil Read.

Setiap upaya untuk mengakses tertutup OracleBFile menggunakan Read metode atau Seek membuka OracleBFile kembali aliran secara otomatis.

Contoh C# berikut menunjukkan bagaimana Anda dapat membuat BFILE dalam tabel Oracle, lalu mengambilnya dalam bentuk OracleBFile objek. Contoh menunjukkan penggunaan OracleDataReader objek dan OracleBFileSeek metode dan 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;
}

Untuk informasi selengkapnya tentang membuat dan menggunakan Oracle BFILE, lihat topik yang sesuai dalam dokumentasi Oracle Anda.

Catatan

Metode BeginWrite, EndWrite, dan WriteByte , yang diwarisi dari System.IO.Stream kelas , tidak didukung karena BFILE jenis data bersifat baca-saja.

Bidang

Null

Mewakili objek null OracleBFile yang tidak terikat ke file fisik.

Properti

CanRead

Mendapatkan nilai yang menunjukkan apakah BFILE aliran dapat dibaca.

CanSeek

Mendapatkan nilai yang menunjukkan apakah operasi pencarian maju dan pencarian mundur dapat dilakukan.

CanTimeout

Mendapatkan nilai yang menentukan apakah aliran saat ini dapat kehabisan waktu.

(Diperoleh dari Stream)
CanWrite

Mendapatkan nilai yang menunjukkan apakah objek mendukung penulisan.

Connection

Mendapatkan yang OracleConnection digunakan oleh instans ini dari OracleBFile.

DirectoryName

Mendapatkan nama objek DIREKTORI, yang OracleBFile dikaitkan dengan objek.

FileExists

Mendapatkan nilai yang menunjukkan apakah file fisik yang berisi BFILE data ada dalam sistem operasi.

FileName

Mendapatkan nama BFILE tanpa jalur.

IsNull

Mendapatkan nilai yang menunjukkan apakah OracleBFile itu Null aliran.

Length

Mendapatkan nilai yang mengembalikan panjang dalam byte file fisik yang OracleBFile terkait dengan objek.

Position

Mendapatkan posisi baca saat ini di OracleBFile aliran.

ReadTimeout

Mendapatkan atau menetapkan nilai, dalam milidetik, yang menentukan berapa lama aliran akan mencoba membaca sebelum waktu habis.

(Diperoleh dari Stream)
Value

Array Mendapatkan jenis Byte yang berisi OracleBFile data.

WriteTimeout

Mendapatkan atau menetapkan nilai, dalam milidetik, yang menentukan berapa lama aliran akan mencoba menulis sebelum waktu habis.

(Diperoleh dari Stream)

Metode

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

Memulai operasi baca asinkron. (Pertimbangkan untuk menggunakan ReadAsync(Byte[], Int32, Int32) sebagai gantinya.)

(Diperoleh dari Stream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Memulai operasi tulis asinkron. (Pertimbangkan untuk menggunakan WriteAsync(Byte[], Int32, Int32) sebagai gantinya.)

(Diperoleh dari Stream)
Clone()

Membuat salinan objek ini OracleBFile yang terkait dengan file fisik yang sama dengan aslinya.

Close()

Menutup aliran saat ini dan merilis sumber daya apa pun (seperti soket dan handel file) yang terkait dengan aliran saat ini. Alih-alih memanggil metode ini, pastikan aliran dibuang dengan benar.

(Diperoleh dari Stream)
CopyTo(Int64, OracleLob, Int64, Int64)

Menyalin dari ini OracleBFile ke tujuan OracleLob dengan jumlah data yang ditentukan, offset sumber, dan offset tujuan.

CopyTo(OracleLob)

Menyalin seluruh konten ini OracleBFile ke awal tujuan OracleLob.

CopyTo(OracleLob, Int64)

Menyalin seluruh isi ini OracleBFile ke tujuan OracleLob pada offset yang ditentukan.

CopyTo(Stream)

Membaca byte dari aliran saat ini dan menulisnya ke aliran lain. Kedua posisi aliran dilanjutkan dengan jumlah byte yang disalin.

(Diperoleh dari Stream)
CopyTo(Stream, Int32)

Membaca byte dari aliran saat ini dan menulisnya ke aliran lain, menggunakan ukuran buffer tertentu. Kedua posisi aliran dilanjutkan dengan jumlah byte yang disalin.

(Diperoleh dari Stream)
CopyToAsync(Stream)

Secara asinkron membaca byte dari aliran saat ini dan menulisnya ke aliran lain. Kedua posisi aliran dilanjutkan dengan jumlah byte yang disalin.

(Diperoleh dari Stream)
CopyToAsync(Stream, CancellationToken)

Secara asinkron membaca byte dari aliran saat ini dan menulisnya ke aliran lain, menggunakan token pembatalan tertentu. Kedua posisi aliran dilanjutkan dengan jumlah byte yang disalin.

(Diperoleh dari Stream)
CopyToAsync(Stream, Int32)

Secara asinkron membaca byte dari aliran saat ini dan menulisnya ke aliran lain, menggunakan ukuran buffer tertentu. Kedua posisi aliran dilanjutkan dengan jumlah byte yang disalin.

(Diperoleh dari Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Secara asinkron membaca byte dari aliran saat ini dan menulisnya ke aliran lain, menggunakan ukuran buffer dan token pembatalan tertentu. Kedua posisi aliran dilanjutkan dengan jumlah byte yang disalin.

(Diperoleh dari Stream)
CreateObjRef(Type)

Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh.

(Diperoleh dari MarshalByRefObject)
CreateWaitHandle()
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.

Mengalokasikan WaitHandle objek.

(Diperoleh dari Stream)
Dispose()

Melepaskan semua sumber daya yang digunakan oleh objek ini.

Dispose()

Merilis semua sumber daya yang Streamdigunakan oleh .

(Diperoleh dari Stream)
Dispose(Boolean)

Merilis sumber daya tidak terkelola yang digunakan oleh Stream dan secara opsional merilis sumber daya terkelola.

(Diperoleh dari Stream)
DisposeAsync()

Secara asinkron merilis sumber daya yang tidak dikelola yang digunakan oleh Stream.

(Diperoleh dari Stream)
EndRead(IAsyncResult)

Menunggu pembacaan asinkron yang tertunda selesai. (Pertimbangkan untuk menggunakan ReadAsync(Byte[], Int32, Int32) sebagai gantinya.)

(Diperoleh dari Stream)
EndWrite(IAsyncResult)

Mengakhiri operasi penulisan asinkron. (Pertimbangkan untuk menggunakan WriteAsync(Byte[], Int32, Int32) sebagai gantinya.)

(Diperoleh dari Stream)
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
Flush()

Saat ini tidak didukung.

FlushAsync()

Secara asinkron menghapus semua buffer untuk aliran ini dan menyebabkan data yang di-buffer ditulis ke perangkat yang mendasar.

(Diperoleh dari Stream)
FlushAsync(CancellationToken)

Secara asinkron menghapus semua buffer untuk aliran ini, menyebabkan data yang di-buffer ditulis ke perangkat yang mendasar, dan memantau permintaan pembatalan.

(Diperoleh dari Stream)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetLifetimeService()
Kedaluwarsa.

Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
InitializeLifetimeService()
Kedaluwarsa.

Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
MemberwiseClone(Boolean)

Membuat salinan dangkal objek saat ini MarshalByRefObject .

(Diperoleh dari MarshalByRefObject)
ObjectInvariant()
Kedaluwarsa.

Menyediakan dukungan untuk Contract.

(Diperoleh dari Stream)
Read(Byte[], Int32, Int32)

Membaca urutan byte dari aliran saat ini OracleBFile dan memajukan posisi dalam aliran dengan jumlah byte yang dibaca.

Read(Span<Byte>)

Ketika ditimpa di kelas turunan, membaca urutan byte dari aliran saat ini dan memajukan posisi dalam aliran dengan jumlah byte yang dibaca.

(Diperoleh dari Stream)
ReadAsync(Byte[], Int32, Int32)

Secara asinkron membaca urutan byte dari aliran saat ini dan memajukan posisi dalam aliran dengan jumlah byte yang dibaca.

(Diperoleh dari Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

Secara asinkron membaca urutan byte dari aliran saat ini, memajukan posisi dalam aliran dengan jumlah byte yang dibaca, dan memantau permintaan pembatalan.

(Diperoleh dari Stream)
ReadAsync(Memory<Byte>, CancellationToken)

Secara asinkron membaca urutan byte dari aliran saat ini, memajukan posisi dalam aliran dengan jumlah byte yang dibaca, dan memantau permintaan pembatalan.

(Diperoleh dari Stream)
ReadAtLeast(Span<Byte>, Int32, Boolean)

Membaca setidaknya jumlah minimum byte dari aliran saat ini dan memajukan posisi dalam aliran dengan jumlah byte yang dibaca.

(Diperoleh dari Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

Secara asinkron membaca setidaknya jumlah minimum byte dari aliran saat ini, memajukan posisi dalam aliran dengan jumlah byte yang dibaca, dan memantau permintaan pembatalan.

(Diperoleh dari Stream)
ReadByte()

Membaca byte dari aliran dan memajukan posisi dalam aliran dengan satu byte, atau mengembalikan -1 jika di akhir aliran.

(Diperoleh dari Stream)
ReadExactly(Byte[], Int32, Int32)

count Membaca jumlah byte dari aliran saat ini dan memajukan posisi dalam aliran.

(Diperoleh dari Stream)
ReadExactly(Span<Byte>)

Membaca byte dari aliran saat ini dan memajukan posisi dalam aliran hingga buffer terisi.

(Diperoleh dari Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

Secara asinkron membaca count jumlah byte dari aliran saat ini, memajukan posisi dalam aliran, dan memantau permintaan pembatalan.

(Diperoleh dari Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

Secara asinkron membaca byte dari aliran saat ini, memajukan posisi dalam aliran hingga buffer terisi, dan memantau permintaan pembatalan.

(Diperoleh dari Stream)
Seek(Int64, SeekOrigin)

Mengatur posisi pada aliran saat ini OracleBFile .

SetFileName(String, String)

Mengikat objek ke OracleBFile file yang berbeda dalam sistem operasi.

SetLength(Int64)

Saat ini tidak didukung.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
Write(Byte[], Int32, Int32)

Saat ini tidak didukung.

Write(ReadOnlySpan<Byte>)

Ketika ditimpa di kelas turunan, menulis urutan byte ke aliran saat ini dan memajukan posisi saat ini dalam aliran ini dengan jumlah byte yang ditulis.

(Diperoleh dari Stream)
WriteAsync(Byte[], Int32, Int32)

Secara asinkron menulis urutan byte ke aliran saat ini dan memajukan posisi saat ini dalam aliran ini dengan jumlah byte yang ditulis.

(Diperoleh dari Stream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

Secara asinkron menulis urutan byte ke aliran saat ini, memajukan posisi saat ini dalam aliran ini dengan jumlah byte yang ditulis, dan memantau permintaan pembatalan.

(Diperoleh dari Stream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Secara asinkron menulis urutan byte ke aliran saat ini, memajukan posisi saat ini dalam aliran ini dengan jumlah byte yang ditulis, dan memantau permintaan pembatalan.

(Diperoleh dari Stream)
WriteByte(Byte)

Menulis byte ke posisi saat ini di aliran dan memajukan posisi dalam aliran dengan satu byte.

(Diperoleh dari Stream)

Implementasi Antarmuka Eksplisit

IDisposable.Dispose()

Merilis semua sumber daya yang Streamdigunakan oleh .

(Diperoleh dari Stream)

Metode Ekstensi

CopyToAsync(Stream, PipeWriter, CancellationToken)

Secara asinkron membaca byte dari Stream dan menulisnya ke yang ditentukan PipeWriter, menggunakan token pembatalan.

Berlaku untuk