OracleLob.SetLength(Int64) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.