OracleLob.SetLength(Int64) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將 OracleLob 資料流的長度設定為小於目前長度的值。
public:
override void SetLength(long value);
public override void SetLength (long value);
override this.SetLength : int64 -> unit
Public Overrides Sub SetLength (value As Long)
參數
例外狀況
作業不在交易中、OracleLob 物件為 null,或是連接已關閉。
物件已關閉或處置。
發生 Oracle 錯誤。
備註
嘗試增加數據流的 OracleLob 長度失敗,並從 Oracle 伺服器傳回「訊息:ORA-22926:指定的修剪長度大於目前的 LOB 值長度」。
數據流必須同時支援撰寫和搜尋 SetLength to函式。
.NET Framework Data Provider for Oracle 會將所有數據CLOB
NCLOB
處理為 Unicode。 因此,存取 CLOB
和 NCLOB
數據類型時,您一律會處理位元組數目,其中每個字元都是 2 個字節。 例如,如果包含三個字元的文字字串儲存為 NCLOB
Oracle 伺服器上的 ,其中字元集為每個字元 4 個字節,而您執行 SetLength
作業,則會將字元串的長度指定為 6 個字節,不過它儲存在伺服器上是 12 個字節。
若要寫入 LOB
,您必須已在 SQL SELECT 語句中使用 FOR UPDATE 子句擷取 LOB
,而且必須啟動本機交易。
注意
唯讀 LOB
的寫入作業可能會成功,但不會更新 LOB
伺服器上的 。 不過,在此情況下,會更新的 LOB
本地副本。 因此,物件上稍後的 OracleLob 讀取作業可能會傳回寫入作業的結果。