OracleLob 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 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ştirebilirsinizLOB
ve değişiklikleriniz doğrudan veritabanına yansıtılır. OracleLOB
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 öbeklerineLOB
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 LOB
bir 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ı LOB
gibi davranır. Örneğin, geçici LOB
güncelleştirmek için bir işlem içine alınmalıdır.
Aşağıdaki örnekte geçici LOB
bir 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 LOB
sn'ler yalnızca bağlantı kapatıldığında kapatılır, ancak havuz oluşturma ve yük altında geçici LOB
sn 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 |
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 |
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 |
Length |
boyutunu OracleLobdöndüren bir değer alır. |
LobType |
Veri türünü döndüren |
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 |
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 |
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) | |
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) |
|
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 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. |