OracleLob.SetLength(Int64) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define o comprimento do OracleLob fluxo para um valor inferior ao comprimento 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 comprimento desejado do fluxo de corrente OracleLob em bytes. Para CLOB os tipos de dados e, NCLOB este deve ser um número par.
Exceções
Um valor especificado no value parâmetro para um CLOB tipo de dado ou NCLOB não é par.
-ou-
Um valor especificado no value parâmetro é inferior a zero ou superior a 4 gigabytes.
A operação não está dentro de uma transação, o OracleLob objeto é nulo ou a ligação está fechada.
O objeto foi fechado ou descartado.
Ocorreu um erro da Oracle.
Observações
Uma tentativa de aumentar o comprimento do OracleLob fluxo falha e devolve "Mensagem: ORA-22926: o comprimento de trim especificado é maior do que o comprimento do valor atual do LOB" do servidor Oracle.
Um fluxo deve apoiar tanto a escrita como a SetLength procura de funcionar.
O Data Provider do .NET Framework para Oracle trata todos os dados CLOB e NCLOB como Unicode. Portanto, ao aceder CLOB a tipos de dados, NCLOB está sempre a lidar com o número de bytes, onde cada carácter tem 2 bytes. Por exemplo, se uma cadeia de texto contendo três caracteres for guardada num NCLOB servidor Oracle onde o conjunto de caracteres é de 4 bytes por carácter, e realizar uma SetLength operação, especifica o comprimento da cadeia como 6 bytes, embora esteja armazenada como 12 bytes no servidor.
Para escrever no LOB, deve ter recuperado usando LOB a cláusula FOR UPDATE na instrução SQL SELECT, e deve ter uma transação local iniciada.
Note
Uma operação de escrita para só LOB leitura pode ter sucesso, mas não atualiza o LOB no servidor. Neste caso, no entanto, a cópia local do LOB é atualizada. Portanto, operações de leitura posteriores no OracleLob objeto podem devolver os resultados da operação de escrita.