Aracılığıyla paylaş


OracleLob Sınıf

Tanım

Oracle sunucusunda depolanan büyük bir nesne ikili (LOB) veri türünü temsil eder. Bu sınıf devralınamaz.

public ref class OracleLob sealed : System::IO::Stream, ICloneable, System::Data::SqlTypes::INullable
public sealed class OracleLob : System.IO.Stream, ICloneable, System.Data.SqlTypes.INullable
type OracleLob = class
    inherit Stream
    interface ICloneable
    interface IDisposable
    interface INullable
Public NotInheritable Class OracleLob
Inherits Stream
Implements ICloneable, INullable
Devralma
Uygulamalar

Açıklamalar

, OracleLob içindeki verinin OracleBFile işletim sistemindeki fiziksel bir dosya yerine sunucuda depolanmasından farklıdır. Her zaman salt okunur olan bir OracleBFileöğesinin aksine, bir okuma-yazma nesnesi de olabilir.

OracleLob bu OracleType veri türlerinden biri olabilir.

OracleType veri türü Description
Blob BLOB En fazla 4 gigabayt (GB) boyutunda ikili veri içeren oracle veri türü. Bu, türünde Bytebir Array ile eşler.
Clob CLOB Sunucudaki varsayılan karakter kümesine göre karakter verileri içeren ve boyut üst sınırı 4 GB olan oracle veri türü. Bu, ile Stringeşler.
NClob Maksimum boyutu 4 GB olan sunucuda ulusal karakter kümesine göre karakter verileri içeren bir Oracle NCLOB veri türü. Bu, ile Stringeşler.

Bir .NET uygulama geliştiricisi Oracle LOB değerlerini türü ve Stringgibi ArrayByte temel .NET veri türlerine veya özelleştirilmiş OracleLob veri türüne alabilir. sınıfı Oracle OracleLob veritabanında oracle'dan veri okumayı ve Oracle'a LOB yazmayı destekler.

Aşağıda, temel .NET veri türlerinden ayıran bir OracleLob veri türünün ana özellikleri yer alır:

  • Oracle değerini Oracle LOB veritabanından sınıfına OracleLob aldıktan sonra, açık bir işlemdeki verileri değiştirebilirsiniz LOB ve değişiklikleriniz doğrudan veritabanına yansıtılır. Oracle LOB değerini veya Array türünde ByteString alır ve bu dizileri güncelleştirirseniz, değişiklikleriniz veritabanına yansıtılmaz.

  • Bir değerin OracleLob öbeklerine LOB erişmek için sınıfını kullandığınızda, Oracle veritabanından istemciye yalnızca bu öbek geçirilir. Bir değerin GetChars öbeklerine LOB erişmek için yöntemini kullandığınızda, değerin tüm içeriği Oracle veritabanından istemciye geçirilir.

Bir OracleLob nesnesi almak için yöntemini çağırın GetOracleLob .

Bu biçimi kullanarak NULL olan bir OracleLob oluşturabilirsiniz:

OracleLob myLob = OracleLob.Null;  
Dim myLob As OracleLob = OracleLob.Null

Bu teknik öncelikle sunucudan döndürülen bir LOB değerin NULL olup olmadığını test etmek için kullanılır, örneğin gösterildiği gibi:

if (myLob == OracleLob.Null)  
If (myLob = OracleLob.Null) Then

NULLLOB, başarılı olan ve her zaman sıfır bayt döndüren Read sıfır bayt'a LOB benzer şekilde davranır.

Null değer içeren bir LOB sütun seçildiğinde döndürür Null.

Geçici LOBbir elde etmeden önce bir işlem başlatmanız gerekir. Aksi takdirde, OracleDataReader veri daha sonra elde edilemeyebilir.

DBMS_LOB çağırarak Oracle'da geçici LOB bir de açabilirsiniz. CREATETEMPORARY sistem saklı yordamı ve bir LOB çıkış parametresi bağlama. İstemci tarafında, geçici LOB bir tablo tabanlı LOBgibi davranır. Örneğin, geçici LOBgüncelleştirmek için bir işlem içine alınmalıdır.

Aşağıdaki örnekte geçici LOBbir açma gösterilmektedir:

var connection = new OracleConnection("server=MyServer; integrated security=yes;");  
connection.Open();  
OracleTransaction transaction = connection.BeginTransaction();  
OracleCommand command = connection.CreateCommand();  
command.Transaction = transaction;  
command.CommandText = "declare xx blob; begin dbms_lob.createtemporary(xx, false, 0); :tempblob := xx; end;";  
command.Parameters.Add(new OracleParameter("tempblob", OracleType.Blob)).Direction = ParameterDirection.Output;  
command.ExecuteNonQuery();  
var tempLob = (OracleLob)command.Parameters[0].Value;  
var tempbuff = new byte[10000];  
tempLob.BeginBatch(OracleLobOpenMode.ReadWrite);  
tempLob.Write(tempbuff,0,tempbuff.Length);  
tempLob.EndBatch();  
command.Parameters.Clear();  
command.CommandText = "MyTable.MyProc";  
command.CommandType = CommandType.StoredProcedure;    
command.Parameters.Add(new OracleParameter("ImportDoc", OracleType.Blob)).Value = tempLob;  
command.ExecuteNonQuery();  
transaction.Commit();  
connection.Close(); 

Not

Karakter verileriyle kullanıldığında devralınan WriteByte yöntem başarısız olur ve bir InvalidOperationException oluşturulur. Write Bunun yerine yöntemini kullanın.

Geçici LOBsn'ler yalnızca bağlantı kapatıldığında kapatılır, ancak havuz oluşturma ve yük altında geçici LOBsn kapatılmaz. Bu, çağrılarak geçici LOBöğesinin yok edilmesiyle tempLob.Dispose()çözülebilir.

Alanlar

Null

Null OracleLob bir nesneyi temsil eder.

Özellikler

CanRead

Akışın LOB 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

yazma desteği olup olmadığına LOB bakılmaksızın her zaman true değerini döndürür.

ChunkSize

Okuma/yazma işlemi sırasında sunucudan alınacak veya sunucuya gönderilecek en az bayt sayısını belirten bir değer alır.

Connection

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

IsBatched

Yöntemini çağıran BeginBatch() bir uygulamanın olup olmadığını belirten bir değer alır.

IsNull

öğesinin bir akış olup olmadığını OracleLob gösteren bir Null değer alır.

IsTemporary

değerinin geçici LOBolup olmadığını OracleLob belirten bir değer alır.

Length

boyutunu OracleLobdöndüren bir değer alır.

LobType

Veri türünü döndüren LOB bir değer alır.

Position

Akıştaki geçerli okuma konumunu OracleLob 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

Temel alınan değerin ortak dil çalışma zamanı akış değerini 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

Append(OracleLob)

Belirtilen LOB verilerinden geçerli LOBöğesine ekler.

BeginBatch()

Birden çok okuma işlemi gerçekleştirirken sunucu tarafı tetikleyicilerinin tetiklenmesini engeller.

BeginBatch(OracleLobOpenMode)

Belirtilen erişim modunda birden çok okuma ve yazma işlemi gerçekleştirirken sunucu tarafı tetikleyicilerinin tetiklenmesini engeller.

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

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

(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) göz önünde bulundurun.)

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

Özgün OracleLob nesneyle aynı Oracle'a LOB başvuran yeni OracleLob bir nesne oluşturur.

Close()

Geçerli akışı kapatır ve akışla ilişkili kaynakları serbest bırakır.

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)

Bu OracleLob kaynaktan belirtilen veri miktarına ve kaynak uzaklığına sahip bir hedefe OracleLob kopyalar.

CopyTo(OracleLob)

Bundan OracleLob hedefine OracleLobkopyalar.

CopyTo(OracleLob, Int64)

Bu OracleLob kaynaktan belirtilen miktarda veri içeren 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 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 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)

Belirtilen arabellek boyutu ve iptal belirtecini kullanarak geçerli akıştan 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)
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 nesnesi ayırır.

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

Bu nesne tarafından kullanılan 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)
EndBatch()

Birden çok yazma işlemi gerçekleştirdikten sonra sunucu tarafı tetikleyicilerinin tetiklemeye devam etmesine izin verir.

EndRead(IAsyncResult)

Bekleyen zaman uyumsuz okumanın tamamlanmasını bekler. (Bunun yerine kullanmayı ReadAsync(Byte[], Int32, Int32) göz önünde bulundurun.)

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

Zaman uyumsuz yazma işlemini sonlandırır. (Bunun yerine kullanmayı WriteAsync(Byte[], Int32, Int32) göz önünde bulundurun.)

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

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

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

Bu OracleLobdosyadan tüm verileri siler.

Erase(Int64, Int64)

Belirtilen miktarda veriyi bu OracleLobiçinden siler.

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 OracleLob 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ına göre akış içindeki konumu ilerletir.

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

Geçerli akıştan zaman uyumsuz olarak bir bayt dizisi 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 zaman uyumsuz olarak bir bayt dizisi 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 zaman uyumsuz olarak bir bayt dizisi 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 zaman uyumsuz olarak en az sayıda bayt okur, okunan bayt sayısına göre akış içindeki konumu ilerletir ve iptal isteklerini izler.

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

Akıştan bir bayt okur ve akışın 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 ilerler.

(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 ilerler ve iptal isteklerini izler.

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

Geçerli OracleLob akışta konumu ayarlar.

SetLength(Int64)

Akışın OracleLob uzunluğunu geçerli uzunluktan daha küçük bir değere ayarlar.

ToString()

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

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

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

Write(ReadOnlySpan<Byte>)

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

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

Zaman uyumsuz olarak geçerli akışa bir bayt dizisi yazar ve yazılan bayt sayısına göre bu akıştaki geçerli konumu 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 OracleLob geçerli konuma bir bayt yazar ve akış içindeki konumu bir bayt ilerletir.

WriteByte(Byte)

Akıştaki geçerli konuma bir bayt yazar ve akışın 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