Condividi tramite


OracleLob.SetLength(Int64) Metodo

Definizione

Imposta la lunghezza del flusso OracleLob su un valore inferiore alla lunghezza corrente.

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

Parametri

value
Int64

Lunghezza desiderata del flusso OracleLob corrente in byte. Per i tipi di dati CLOB e NCLOB, deve trattarsi di un numero pari.

Eccezioni

Un valore specificato nel parametro value per un tipo di dati CLOB o NCLOB non è pari.

-oppure-

Un valore specificato nel parametro value è minore di zero o maggiore di 4 GB.

L'operazione non è presente all'interno di una transazione, l'oggetto OracleLob è null oppure la connessione è chiusa.

L'oggetto è stato chiuso o eliminato.

Si è verificato un errore Oracle.

Commenti

Un tentativo di aumentare la lunghezza del OracleLob flusso ha esito negativo e restituisce "Message: ORA-22926: la lunghezza di taglio specificata è maggiore della lunghezza del valore LOB corrente" dal server Oracle.

Un flusso deve supportare sia la scrittura che la ricerca di SetLength funzioni.

Il provider di dati .NET Framework per Oracle gestisce tutti i CLOB dati e NCLOB come Unicode. Pertanto, quando si accede ai CLOB tipi di dati e NCLOB , si ha sempre a che fare con il numero di byte, in cui ogni carattere è di 2 byte. Ad esempio, se una stringa di testo contenente tre caratteri viene salvata come in NCLOB un server Oracle in cui il set di caratteri è di 4 byte per carattere e si esegue un'operazione SetLength , specificare la lunghezza della stringa come 6 byte, anche se viene archiviata come 12 byte nel server.

Per scrivere in LOB, è necessario aver recuperato LOB utilizzando la clausola FOR UPDATE nell'istruzione SQL SELECT ed è necessario avviare una transazione locale.

Nota

Un'operazione di scrittura in una sola lettura LOB potrebbe avere esito positivo, ma non aggiorna nel LOB server. In questo caso, tuttavia, la copia locale di LOB viene aggiornata. Pertanto, le operazioni di lettura successive sull'oggetto OracleLob potrebbero restituire i risultati dell'operazione di scrittura.

Si applica a