Freigeben über


OracleLob.SetLength-Methode

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

Namespace: System.Data.OracleClient
Assembly: System.Data.OracleClient (in system.data.oracleclient.dll)

Syntax

'Declaration
Public Overrides Sub SetLength ( _
    value As Long _
)
'Usage
Dim instance As OracleLob
Dim value As Long

instance.SetLength(value)
public override void SetLength (
    long value
)
public:
virtual void SetLength (
    long long value
) override
public void SetLength (
    long value
)
public override function SetLength (
    value : long
)

Parameter

  • value
    Die gewünschte Länge des aktuellen OracleLob-Streams in Bytes. Bei CLOB-Datentypen und NCLOB-Datentypen muss dies eine gerade Zahl sein.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentOutOfRangeException

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.

InvalidOperationException

Die Operation befindet sich nicht innerhalb einer Transaktion, das OracleLob-Objekt ist NULL, oder die Verbindung ist geschlossen.

ObjectDisposedException

Das Objekt war geschlossen oder freigegeben.

OracleException

Es ist ein Oracle-Fehler aufgetreten.

Hinweise

Das Erhöhen der Länge des OracleLob-Streams schlägt fehl, und es wird "Meldung: ORA-22926: Angegebene Trimlänge ist größer als die Länge des aktuellen LOB-Werts" vom Oracle-Server zurückgegeben.

Ein Stream muss Schreib- und Suchvorgänge unterstützen, damit SetLength funktioniert.

Der .NET Framework-Datenanbieter für Oracle behandelt alle CLOB-Daten und NCLOB-Daten als Unicode. Daher arbeiten Sie beim Zugreifen auf CLOB-Datentypen und NCLOB-Datentypen immer mit der Anzahl von Bytes, wobei jedes Zeichen 2 Bytes beträgt. Wenn z. B. eine Textzeichenfolge mit drei Zeichen als ein NCLOB auf einem Oracle-Server gespeichert wird, dessen Zeichensatz 4 Bytes pro Zeichen beträgt, und Sie eine SetLength-Operation durchführen, geben Sie die Länge der Zeichenfolge als 6 Bytes an, obwohl diese auf dem Server als 12 Bytes gespeichert ist.

Wenn in das LOB geschrieben werden soll, müssen Sie das LOB mithilfe der FOR UPDATE-Klausel in der SQL-SELECT-Anweisung abgerufen haben, und eine lokale Transaktion muss gestartet worden sein.

Hinweis

Ein Schreibvorgang für ein schreibgeschütztes LOB kann fehlerfrei ausgeführt werden, das LOB auf dem Server wird jedoch nicht aktualisiert. In diesem Fall wird jedoch die lokale Kopie des LOB aktualisiert. Daher geben spätere Lesevorgänge für das OracleLob-Objekt möglicherweise die Ergebnisse des Schreibvorgangs zurück.

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1

Siehe auch

Referenz

OracleLob-Klasse
OracleLob-Member
System.Data.OracleClient-Namespace