OracleLob.SetLength(Int64) Methode

Definitie

Hiermee stelt u de lengte van de OracleLob stroom in op een waarde die kleiner is dan de huidige lengte.

public:
 override void SetLength(long value);
public override void SetLength(long value);
override this.SetLength : int64 -> unit
Public Overrides Sub SetLength (value As Long)

Parameters

value
Int64

De gewenste lengte van de huidige OracleLob stroom in bytes. Voor CLOB en NCLOB gegevenstypen moet dit een even getal zijn.

Uitzonderingen

Een waarde die is opgegeven in de value parameter voor een CLOB of NCLOB gegevenstype, is niet eens.

– of –

Een waarde die is opgegeven in de value parameter is kleiner dan nul of groter dan 4 gigabyte.

De bewerking bevindt zich niet binnen een transactie, het OracleLob object is null of de verbinding is gesloten.

Het object is gesloten of verwijderd.

Er is een Oracle-fout opgetreden.

Opmerkingen

Een poging om de lengte van de OracleLob stroom te verhogen mislukt en retourneert 'Bericht: ORA-22926: opgegeven trimlengte is groter dan de lengte van de huidige LOB-waarde' van de Oracle-server.

Een stream moet zowel het schrijven als het zoeken SetLength naar functie ondersteunen.

De .NET Framework-Data Provider voor Oracle verwerkt alle CLOB en NCLOB-gegevens als Unicode. Daarom hebt u bij het openen CLOB en NCLOB gegevenstypen altijd te maken met het aantal bytes, waarbij elk teken 2 bytes is. Als een tekenreeks met drie tekens bijvoorbeeld wordt opgeslagen als een NCLOB Oracle-server waarop de tekenset 4 bytes per teken is en u een SetLength bewerking uitvoert, geeft u de lengte van de tekenreeks op als 6 bytes, hoewel deze is opgeslagen als 12 bytes op de server.

Als u naar de LOBinstructie WILT schrijven, moet u het LOB gebruik van de FOR UPDATE-component in de SQL SELECT-instructie hebben opgehaald en moet u een lokale transactie hebben gestart.

Note

Een schrijfbewerking naar een alleen-lezenbewerking LOB kan slagen, maar werkt de LOB bewerking niet bij op de server. In dit geval wordt de lokale kopie van de kopie LOB echter bijgewerkt. Daarom kunnen latere leesbewerkingen op het OracleLob object de resultaten van de schrijfbewerking retourneren.

Van toepassing op