OracleLob.SetLength(Int64) Metodo

Definizione

Imposta la lunghezza del OracleLob flusso su un valore minore della 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 corrente OracleLob in byte. Per CLOB i tipi di dati e NCLOB , questo deve essere un numero pari.

Eccezioni

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

oppure

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

L'operazione non si trova all'interno di una transazione, l'oggetto OracleLob è Null o la connessione viene 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 di .NET Framework per Oracle gestisce tutti i dati CLOB 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 , si specifica la lunghezza della stringa come 6 byte, sebbene sia 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 che sia stata avviata una transazione locale.

Note

Un'operazione di scrittura in un'operazione di sola LOB lettura 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