Bagikan melalui


OracleLob.SetLength(Int64) Metode

Definisi

Mengatur panjang OracleLob aliran ke nilai yang kurang dari panjang saat ini.

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

Parameter

value
Int64

Panjang yang diinginkan dari aliran saat ini OracleLob dalam byte. Untuk CLOB jenis data dan NCLOB , ini harus berupa angka genap.

Pengecualian

Nilai yang ditentukan dalam value parameter untuk CLOB jenis data atau NCLOB bahkan tidak.

-atau-

Nilai yang ditentukan dalam value parameter kurang dari nol atau lebih besar dari 4 gigabyte.

Operasi tidak berada dalam transaksi, OracleLob objek null, atau koneksi ditutup.

Objek ditutup atau dibuang.

Terjadi kesalahan Oracle.

Keterangan

Upaya untuk meningkatkan panjang OracleLob aliran gagal, dan mengembalikan "Pesan: ORA-22926: panjang pemangkasan yang ditentukan lebih besar dari panjang nilai LOB saat ini" dari server Oracle.

Aliran harus mendukung penulisan dan pencarian agar SetLength berfungsi.

Penyedia data .NET Framework untuk Oracle menangani semua CLOB data dan NCLOB sebagai Unicode. Oleh karena itu, saat mengakses CLOB dan NCLOB jenis data, Anda selalu berurusan dengan jumlah byte, di mana setiap karakter adalah 2 byte. Misalnya, jika string teks yang berisi tiga karakter disimpan sebagai NCLOB di server Oracle di mana kumpulan karakter adalah 4 byte per karakter, dan Anda melakukan SetLength operasi, Anda menentukan panjang string sebagai 6 byte, meskipun disimpan sebagai 12 byte di server.

Untuk menulis ke LOB, Anda harus telah mengambil LOB menggunakan klausa FOR UPDATE dalam pernyataan SQL SELECT, dan Anda harus memulai transaksi lokal.

Catatan

Operasi tulis ke baca-saja LOB mungkin berhasil, tetapi tidak memperbarui LOB pada server. Namun, dalam hal ini, salinan lokal diperbarui LOB . Oleh karena itu, operasi baca nanti pada OracleLob objek mungkin mengembalikan hasil operasi tulis.

Berlaku untuk