OracleLob.SetLength(Int64) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define o tamanho do fluxo OracleLob para um valor menor que o tamanho atual.
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
O tamanho desejado do fluxo OracleLob atual em bytes. Para os tipos de dados CLOB
e NCLOB
, isso deve ser um número par.
Exceções
Um valor especificado no parâmetro value
para um tipo de dados CLOB
ou NCLOB
não é par.
- ou -
Um valor especificado no parâmetro value
é menor que zero ou maior que 4 gigabytes.
A operação não está em uma transação, o objeto OracleLob é nulo ou a conexão é fechada.
O objeto foi fechado ou descartado.
Ocorreu um erro do Oracle.
Comentários
Uma tentativa de aumentar o comprimento do OracleLob fluxo falha e retorna "Mensagem: ORA-22926: o comprimento de corte especificado é maior que o comprimento do valor lob atual" do servidor Oracle.
Um fluxo deve dar suporte à gravação e à busca para SetLength funcionar.
O provedor de dados .NET Framework para Oracle manipula todos os CLOB
dados e NCLOB
como Unicode. Portanto, ao acessar CLOB
e NCLOB
tipos de dados, você está sempre lidando com o número de bytes, em que cada caractere é de 2 bytes. Por exemplo, se uma cadeia de caracteres de texto contendo três caracteres for salva como um em um NCLOB
servidor Oracle em que o conjunto de caracteres é de 4 bytes por caractere e você executar uma SetLength
operação, especifique o comprimento da cadeia de caracteres como 6 bytes, embora ela seja armazenada como 12 bytes no servidor.
Para gravar no LOB
, você deve ter recuperado o usando a LOB
cláusula FOR UPDATE na instrução SQL SELECT e deve ter uma transação local iniciada.
Observação
Uma operação de gravação em um somente LOB
leitura pode ter êxito, mas não atualiza o LOB
no servidor. Nesse caso, no entanto, a cópia local do LOB
é atualizada. Portanto, operações de leitura posteriores no OracleLob objeto podem retornar os resultados da operação de gravação.