OracleLob.SetLength(Int64) Yöntem

Tanım

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

public:
 override void SetLength(long value);
public override void SetLength (long value);
override this.SetLength : int64 -> unit
Public Overrides Sub SetLength (value As Long)

Parametreler

value
Int64

Geçerli OracleLob akışın bayt cinsinden istenen uzunluğu. ve NCLOB veri türleri için CLOB bu çift sayı olmalıdır.

Özel durumlar

veya NCLOB veri türü için parametresinde value belirtilen değer CLOB eşit değildir.

-veya-

parametresinde value belirtilen değer sıfırdan küçük veya 4 gigabayttan büyük.

İşlem bir işlem içinde değil, OracleLob nesne null veya bağlantı kapatıldı.

Nesne kapatıldı veya atıldı.

Oracle hatası oluştu.

Açıklamalar

Akışın OracleLob uzunluğunu artırma girişimi başarısız olur ve Oracle sunucusundan "İleti: ORA-22926: belirtilen kırpma uzunluğu geçerli LOB değerinin uzunluğundan büyük" sonucunu döndürür.

Bir akışın hem yazmayı SetLength hem de işlev aramasını desteklemesi gerekir.

Oracle için .NET Framework Veri Sağlayıcısı tüm CLOB verileri Unicode NCLOB olarak işler. Bu nedenle, ve NCLOB veri türlerine erişirken CLOB her zaman her karakterin 2 bayt olduğu bayt sayısıyla ilgilenirsiniz. Örneğin, üç karakter içeren bir metin dizesi karakter kümesinin karakter başına 4 bayt olduğu bir Oracle sunucusuna kaydedilirse NCLOB ve bir SetLength işlem gerçekleştirirseniz, dizenin uzunluğunu sunucuda 12 bayt olarak depolansa da 6 bayt olarak belirtirsiniz.

öğesine yazmak için LOB, SQL SELECT deyiminde LOB FOR UPDATE yan tümcesini kullanarak öğesini almış olmanız ve yerel bir işlemin başlatılması gerekir.

Not

Salt LOB okunur bir yazma işlemi başarılı olabilir, ancak sunucusundaki öğesini LOB güncelleştirmez. Ancak bu durumda, yerel kopyası LOB güncelleştirilir. Bu nedenle, nesnedeki OracleLob daha sonra okuma işlemleri yazma işleminin sonuçlarını döndürebilir.

Şunlara uygulanır