OracleLob.SetLength(Int64) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.