Se vc *** provar ** (necessariamente com algum tipo de DEBUG, um dbms_output mostrando a info, que seja) que não só os "resultados do cursor" mas a LÓGICA de gravação era a mesma, de modo que o conteúdo da variável que contém os dados da linha a gravar via UTL_FILE.PUT_LINE eram sempre os mesmos nos dois casos e NUNCA ultrapassando o limite-default de 1024 aí realmente vc deve estar caindo num dos casos citados nos docs relacionados, sim.... Em quase todos eles a questão é, por bug/efeito colateral não planejado, em alguns casos o UTL_FILE leva em conta os settings de NLS do cliente e/ou do servidor, que se estiverem conflitando com os valores de NLS do database podem levar à erros de gravação, veja lá....
[]s Chiappa --- Em oracle_br@yahoogrupos.com.br, "Aldenicio Lopes da Silva" <alopes@...> escreveu > > Obrigado Chiappa pelo retorno. > > Só para complementar a informação, a procedure utiliza o UTL_FILE.PUT_LINE e > o resultado do cursor que foi extraído tanto na maquina 01 como também na > maquina 02 eram os mesmos. > > Isso que me deixou mais confuso. > > Vou ler as documentações sugeridas. > > > > > > Aldenicio Lopes > > > > De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em > nome de J. Laurindo Chiappa > Enviada em: quinta-feira, 19 de setembro de 2013 14:13 > Para: oracle_br@yahoogrupos.com.br > Assunto: [oracle_br] Re: ORA-29285: file write error > > > > > > Vc não diz, mas ** SENDO ** a PUT_LINE a rotina de gravação que vc está > usando da UTL_FILE (PUT_RAW é ** totalmente outro ** animalzinho) a primeira > coisa em que se pensa é o tamanho-default da linha : o terceiro argumento que > vc especifica é o tamnanho máximo da linha a gravar, e para isso o default > (que entra em ação se vc não especificar nada) é de 1024.... Se eu estiver > certo, o que aconteceu foi que CASUALMENTE quando vc rodou na máquina 01 os > dados a gravar por linha foram MENORES que 1024 aí rodou ok, o default > atendeu, mas quando vc rodou na máquina 02 CASUALMENTE nessa ocasião os dados > foram maiores que 1024, o default não atendeu, aí vc é que teve que indicar > um valor maior que as 1024 posições default..... DEBUGUE a sua rotina e/ou > ABRA num editor de texto apropriado os dois arquivos gerados (se ainda os > tiver) que vc comprova ou refuta isto.... Se não der, ao menos Instrumente a > rotina para te informar/logar em algum lugar o TAMANHO dos dados a gravar, > para REGISTRAR se foi isso o caso... > > Não sendo isso, a segunda coisa que se pensa é BUG, normalmente os > relacionados com diferenças de characterset, cfrme as notas metalink > "UTL_FILE.PUT_LINE Results In UTL_FILE.WRITE_ERROR Although Max Line Size Is > Less Than 1023 Bytes" (Doc ID 255888.1) e a " Repeated Calls to > UTL_FILE.PUT_LINE Fails With ORA-29285 Writing Cumulatively More Than 1024 > Characters" (Doc ID 1077034.1), veja lá se alguma delas se enquadra no seu > caso... > > []s > > Chiappa > > --- Em oracle_br@yahoogrupos.com.br, "Aldenicio Lopes da Silva" <alopes@> > escreveu > > > > Boa tarde Grupo, > > > > > > > > Oracle 11.2.0.3 64 bits > > > > Redhat 5.7 > > > > RAC com 2 nós > > > > > > > > Tenho um procedure que gera um relatório em área especifica. Rodando essa > > proc na máquina que denomino RAC01, ela gera o arquivo normalmente. > > > > Rodando na máquina RAC02 ela gera o erro ORA-29285 - File Write Error. > > > > Para sanar o problema, tive que mudar o UTL_FILE.FOPEN(PATH,FILE_NAME,'W') > > para UTL_FILE.FOPEN(PATH,FILE_NAME,'W',4000) > > > > Saberiam me dizer o que pode gerar essa diferença entre as 2 máquinas? > > > > > > > > > > > > > > > > Aldenicio Lopes > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] >