OracleLob.SetLength(Int64) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.