OracleLob.SetLength(Int64) Methode

Definition

Legt die Länge des OracleLob Datenstroms auf einen Wert fest, der kleiner als die aktuelle Länge ist.

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

Die gewünschte Länge des aktuellen OracleLob Datenstroms in Byte. Für CLOB und NCLOB Datentypen muss dies eine gerade Zahl sein.

Ausnahmen

Ein wert, der value im Parameter für einen CLOB Oder NCLOB Datentyp angegeben ist, ist nicht einmal.

-oder-

Ein wert, der value im Parameter angegeben ist, ist kleiner als null oder größer als 4 Gigabyte.

Der Vorgang befindet sich nicht innerhalb einer Transaktion, das OracleLob Objekt ist NULL, oder die Verbindung wird geschlossen.

Das Objekt wurde geschlossen oder verworfen.

Ein Oracle-Fehler ist aufgetreten.

Hinweise

Ein Versuch, die Länge des OracleLob Datenstroms zu erhöhen, schlägt fehl und gibt "Nachricht: ORA-22926: Die angegebene Länge der Kürzung ist größer als die Länge des aktuellen LOB-Werts" vom Oracle-Server.

Ein Datenstrom muss sowohl das Schreiben als auch die SetLength Funktion unterstützen.

Das .NET Framework-Datenanbieter für Oracle verarbeitet alle CLOB und NCLOB-Daten als Unicode. Daher behandeln Sie beim Zugriff auf CLOB und NCLOB Datentypen immer die Anzahl der Bytes, wobei jedes Zeichen 2 Byte ist. Wenn beispielsweise eine Zeichenfolge mit drei Zeichen als NCLOB ein Oracle-Server gespeichert wird, auf dem der Zeichensatz 4 Byte pro Zeichen ist und Sie einen SetLength Vorgang ausführen, geben Sie die Länge der Zeichenfolge als 6 Byte an, obwohl sie auf dem Server als 12 Bytes gespeichert ist.

Um in das LOBElement zu schreiben, müssen Sie die Verwendung der LOB FOR UPDATE-Klausel in der SQL SELECT-Anweisung abgerufen haben, und Sie müssen eine lokale Transaktion gestartet haben.

Note

Ein Schreibvorgang in einen schreibgeschützten LOB Vorgang kann erfolgreich ausgeführt werden, aktualisiert jedoch nicht den LOB Server. In diesem Fall wird jedoch die lokale Kopie der Datei LOB aktualisiert. Daher können später Lesevorgänge für das OracleLob Objekt die Ergebnisse des Schreibvorgangs zurückgeben.

Gilt für: