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-Streams 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-Streams in Bytes. Bei CLOB
-Datentypen und NCLOB
-Datentypen muss dies eine gerade Zahl sein.
Ausnahmen
Ein im value
-Parameter für einen CLOB
-Datentyp oder einen NCLOB
-Datentyp angegebener Wert ist ungerade.
- oder -
Ein im value
-Parameter angegebener Wert ist kleiner als 0 (null) oder größer als 4 Gigabyte.
Die Operation befindet sich nicht innerhalb einer Transaktion, das OracleLob-Objekt ist NULL, oder die Verbindung ist geschlossen.
Das Objekt war geschlossen oder freigegeben.
Es ist ein Oracle-Fehler aufgetreten.
Hinweise
Ein Versuch, die Länge des OracleLob Datenstroms zu erhöhen, schlägt fehl und gibt vom Oracle-Server "Meldung: ORA-22926: angegebene Kürzungslänge ist größer als die Länge des aktuellen LOB-Werts" zurück.
Ein Stream muss sowohl das Schreiben als auch die Suche nach SetLength unterstützen, um zu funktionieren.
Der .NET Framework-Datenanbieter für Oracle verarbeitet alle Daten und als Unicode.The .NET Framework Data Provider for Oracle handles all CLOB
and data NCLOB
as Unicode. Daher haben Sie es beim Zugriff auf CLOB
und NCLOB
datentypen immer mit der Anzahl von Bytes zu tun, wobei jedes Zeichen 2 Byte beträgt. Wenn beispielsweise eine Textzeichenfolge, die drei Zeichen enthält, als NCLOB
auf einem 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 Bytes an, obwohl sie als 12 Bytes auf dem Server gespeichert wird.
Um in zu LOB
schreiben, müssen Sie die mithilfe der FOR UPDATE-Klausel LOB
in der SQL SELECT-Anweisung abgerufen haben, und Sie müssen eine lokale Transaktion gestartet haben.
Hinweis
Ein Schreibvorgang für einen schreibgeschützten LOB
Vorgang kann erfolgreich sein, aktualisiert aber nicht auf LOB
dem Server. In diesem Fall wird jedoch die lokale Kopie des LOB
aktualisiert. Daher können spätere Lesevorgänge für das OracleLob Objekt die Ergebnisse des Schreibvorgangs zurückgeben.