- Este tópico contém 16 respostas, 3 vozes e foi atualizado pela última vez 14 anos, 8 meses atrás por
felipeg.
-
AutorPosts
-
23 de junho de 2011 às 1:32 am #99795
rman
Participante[quote=”felipeg”:3hv3hhts]É, pelo retorno acho que você caiu nesses notes da metalink:
— ORA-01555 And Other Errors while Exporting Table With LOBs, How To Detect Lob Corruption. (Doc ID 452341.1)
— EXP ORA-01555 ORA-22924 ORA-01578 ORA-22922 (Doc ID 787004.1)Você tem acesso ao metalink?
A sugestão que eles dão é o seguinte update nos campos com erro:
update set = empty_blob()
where rowid in (rowids dos registros corrompidos);
Porém sugiro testar, se possível, em um ambiente que não seja de produção pois nunca testei uma situação parecida.
Atenciosamente,
Felipe.[/quote]O bug está em exportar um tabela que possui campo BLOG, e este campo está nulo em algumas linhas ??? Registro corrompido seria isso ???
Que valor retorna empty_blob() ?
24 de junho de 2011 às 3:20 pm #99798felipeg
Participante[quote=”rman”:rd5n0jq0][quote=”felipeg”:rd5n0jq0]É, pelo retorno acho que você caiu nesses notes da metalink:
— ORA-01555 And Other Errors while Exporting Table With LOBs, How To Detect Lob Corruption. (Doc ID 452341.1)
— EXP ORA-01555 ORA-22924 ORA-01578 ORA-22922 (Doc ID 787004.1)Você tem acesso ao metalink?
A sugestão que eles dão é o seguinte update nos campos com erro:
update set = empty_blob()
where rowid in (rowids dos registros corrompidos);
Porém sugiro testar, se possível, em um ambiente que não seja de produção pois nunca testei uma situação parecida.
Atenciosamente,
Felipe.[/quote]O bug está em exportar um tabela que possui campo BLOG, e este campo está nulo em algumas linhas ??? Registro corrompido seria isso ???
Que valor retorna empty_blob() ?[/quote]
É por ai rman
O empty_blob ou clob inicializa a coluna para que a mesma não fique como nulo impedindo assim o problema na hora de exportar o objeto.
A definição da Oracle é essa
“EMPTY_BLOB and EMPTY_CLOB return an empty LOB locator that can be used to initialize a LOB variable or, in an INSERT or UPDATE statement, to initialize a LOB column or attribute to EMPTY. EMPTY means that the LOB is initialized, but not populated with data. You must initialize a LOB attribute that is part of an object type before you can access and populate it.”
Se você quiser ver na prática, crie uma tabela com um campo blob
Em uma linha adicione o valor NULL para o campo e na outra linha adicione a função EMPTY_BLOB(), faça um select e compare.
O que eu percebi é que é uma situação inconstante, por exemplo, acabei de realizar o mesmo teste aqui em nosso ambiente (Oracle 10.2.0.3) e o problema não ocorreu.
Atenciosamente,
Felipe. -
AutorPosts
- Você deve fazer login para responder a este tópico.