OracleLob.SetLength(Int64) Método

Definición

Establece la longitud de la secuencia OracleLob en un valor menor que la longitud actual.

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

Parámetros

value
Int64

Longitud deseada de la secuencia OracleLob en bytes. Para los tipos de datos CLOB y NCLOB, debe ser un número par.

Excepciones

Un valor especificado en el parámetro value para un tipo de datos CLOB o NCLOB no es par.

o bien

Un valor especificado en el parámetro value es menor que cero o mayor que 4 gigabytes.

La operación no está dentro de una transacción, el objeto OracleLob es null, o la conexión está cerrada.

El objeto estaba cerrado o desechado.

Se produjo un error de Oracle.

Comentarios

Se produce un error en un intento de aumentar la longitud de la OracleLob secuencia y devuelve "Message: ORA-22926: la longitud de recorte especificada es mayor que la longitud del valor loB actual" del servidor Oracle.

Una secuencia debe admitir la escritura y la búsqueda de SetLength funciones.

El proveedor de datos de .NET Framework para Oracle controla todos los CLOB datos y NCLOB como Unicode. Por lo tanto, al acceder a CLOB los tipos de datos y NCLOB , siempre se trata del número de bytes, donde cada carácter es de 2 bytes. Por ejemplo, si se guarda una cadena de texto que contiene tres caracteres como en un NCLOB servidor oracle donde el juego de caracteres es de 4 bytes por carácter y se realiza una SetLength operación, se especifica la longitud de la cadena como 6 bytes, aunque se almacena como 12 bytes en el servidor.

Para escribir en LOB, debe haber recuperado mediante LOB la cláusula FOR UPDATE en la instrucción SQL SELECT y debe haber iniciado una transacción local.

Nota

Una operación de escritura en un solo LOB lectura podría realizarse correctamente, pero no actualiza en LOB el servidor. Sin embargo, en este caso, se actualiza la copia local de .LOB Por lo tanto, las operaciones de lectura posteriores en el OracleLob objeto podrían devolver los resultados de la operación de escritura.

Se aplica a