OracleBFile Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
BFILE
bir kopyalama işlemi gerçekleştirirseniz, yalnızcaBFILE
bulucu (dosya başvurusudur) kopyalanır. Dosyadaki veriler kopyalanmaz.
Veri BFILE
türü, boyutu büyük olan öğelere başvurmak LOB
iç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 LOB
eriş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 BFILE
belgelerinizde uygun konuya bakın.
Not
BeginWrite
Sınıfından devralınan System.IO.Stream
, EndWrite
ve 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 |
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 |
FileName |
Yolu olmayan öğesinin |
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) |
|
ReadExactly(Span<Byte>) |
Geçerli akıştan baytları okur ve doldurulana kadar |
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Geçerli akıştaki bayt sayısını zaman uyumsuz olarak okur |
ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Geçerli akıştaki baytları zaman uyumsuz olarak okur, doldurulana kadar |
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. |