Re: [oracle_br] Re: UTL_FILE.FFLUSH

2016-08-26 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Sim, mas independente de vc estar lendo um CLOB, o UTL_FILE.FFLUSH serve para 
descarregar o buffer de um ARQUIVO A GRAVAR, por isso a minha observação de que 
se não fosse um arquivo binário/com caracteres de controle o FFLUSH ** não ** 
tem serventia comumente, se usa é o UTL_FILE.PUT_LINE, que preenche o buffer E 
grava uma linha diretamente... 
 Como vc diz que passou a usar um built-in de gravação de XML (e um XML ** é ** 
um arquivo texto ASCII, finbalizado por caracter(es) de fim de linha) imagino 
que o arquivo que vc queria gravar era TEXTO mesmo, não-binário, Portanto a 
suposição é que havia alguma falha na sua rotina anterior, mesmo, usando de 
aluma maneira falha o FLUSH ao invés do PUT_LINE Mas oK, se a outra rotina 
atendeu, não é o caso de insistir em debug da rotina, isso mesmo...
 
  []s
  
Chiappa

Re: [oracle_br] Re: UTL_FILE.FFLUSH

2016-08-26 Por tôpico Ricardo Monteiro ricardolgmonte...@yahoo.com.br [oracle_br]
Chiappa,
Na verdade é um CLOB que estou tratando. O processo basicamente é encontrar 
pedidos que estão armazenados no CLOB e juntá-los num unico CLOB e depois 
gravar um arquivo.Fiz uma modificação na rotina, ao invés de utilizar utl_file 
para gravar o arquivo, passei a usar o dbms_xslprocessor e aí funcionou 
perfeitamente.
AbsRicardo
 

Em Sexta-feira, 26 de Agosto de 2016 13:11, "jlchia...@yahoo.com.br 
[oracle_br]"  escreveu:
 

     Bom, eu nunca vi (ou se vi não me recordo), mas antes de mais nada, uma 
pergunta : pra variar vc ** não diz ** mas eu SUPONHO que vc está gravando 
arquivos Binários ou ao menos rich-text com caracteres de controle, confere ? 
Pois esse é um dos ** POUCOS ** casos onde se usa FFLUSH, se vc arquivo-texto 
ASCII padrão se usaria é UTL_FILE.PUT_LINE para gravar no arquivo, já que 
arquivos-texto ascii por padrão terminam com uma sequência de caracteres de fim 
de linha...
 Sendo isso, antes de pensar em possíveis bugs (opção Possível, que vc pode e 
vai perseguir com o Suporte), num primeiro momento eu Indicaria primeiro checar 
a lógica dessa rotina, e tentar escrever um caso-exemplo menor mas onde o erro 
se reproduza : como ao gravar binários é você que está no controle de tamanho 
de buffer e de manipulação, não é impossível que simplesmente seja erro na sua 
implementação - EM ESPECIAL, veja na documentação que a UTL_FILE tem *** limite 
*** (32kb iirc) para o buffer, tem limites para qtdade máxima de chamadas PUT 
antes que o buffer seja gravado Não é difícil simplesmente vc estar vendo 
aí o resultado de má-programação violando algum desses limites... Ou mesmo 
erros básicos, como o BUFFER não declarado como variável RAW e sim como 
string...
  Se conseguir montar uma versão ** menor ** (incluindo o CREATE TABLE e uns 
INSERTs pra gente tentar reproduzir) que aconteça o erro, manda pra gente aqui 
no Grupo que a gente dá uma pescoçada...
  
  []s
  
    Chiappa  #yiv5387095506 #yiv5387095506 -- #yiv5387095506ygrp-mkp 
{border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 
10px;}#yiv5387095506 #yiv5387095506ygrp-mkp hr {border:1px solid 
#d8d8d8;}#yiv5387095506 #yiv5387095506ygrp-mkp #yiv5387095506hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv5387095506 #yiv5387095506ygrp-mkp #yiv5387095506ads 
{margin-bottom:10px;}#yiv5387095506 #yiv5387095506ygrp-mkp .yiv5387095506ad 
{padding:0 0;}#yiv5387095506 #yiv5387095506ygrp-mkp .yiv5387095506ad p 
{margin:0;}#yiv5387095506 #yiv5387095506ygrp-mkp .yiv5387095506ad a 
{color:#ff;text-decoration:none;}#yiv5387095506 #yiv5387095506ygrp-sponsor 
#yiv5387095506ygrp-lc {font-family:Arial;}#yiv5387095506 
#yiv5387095506ygrp-sponsor #yiv5387095506ygrp-lc #yiv5387095506hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv5387095506 
#yiv5387095506ygrp-sponsor #yiv5387095506ygrp-lc .yiv5387095506ad 
{margin-bottom:10px;padding:0 0;}#yiv5387095506 #yiv5387095506actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv5387095506 
#yiv5387095506activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv5387095506
 #yiv5387095506activity span {font-weight:700;}#yiv5387095506 
#yiv5387095506activity span:first-child 
{text-transform:uppercase;}#yiv5387095506 #yiv5387095506activity span a 
{color:#5085b6;text-decoration:none;}#yiv5387095506 #yiv5387095506activity span 
span {color:#ff7900;}#yiv5387095506 #yiv5387095506activity span 
.yiv5387095506underline {text-decoration:underline;}#yiv5387095506 
.yiv5387095506attach 
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 
0;width:400px;}#yiv5387095506 .yiv5387095506attach div a 
{text-decoration:none;}#yiv5387095506 .yiv5387095506attach img 
{border:none;padding-right:5px;}#yiv5387095506 .yiv5387095506attach label 
{display:block;margin-bottom:5px;}#yiv5387095506 .yiv5387095506attach label a 
{text-decoration:none;}#yiv5387095506 blockquote {margin:0 0 0 
4px;}#yiv5387095506 .yiv5387095506bold 
{font-family:Arial;font-size:13px;font-weight:700;}#yiv5387095506 
.yiv5387095506bold a {text-decoration:none;}#yiv5387095506 dd.yiv5387095506last 
p a {font-family:Verdana;font-weight:700;}#yiv5387095506 dd.yiv5387095506last p 
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv5387095506 
dd.yiv5387095506last p span.yiv5387095506yshortcuts 
{margin-right:0;}#yiv5387095506 div.yiv5387095506attach-table div div a 
{text-decoration:none;}#yiv5387095506 div.yiv5387095506attach-table 
{width:400px;}#yiv5387095506 div.yiv5387095506file-title a, #yiv5387095506 
div.yiv5387095506file-title a:active, #yiv5387095506 
div.yiv5387095506file-title a:hover, #yiv5387095506 div.yiv5387095506file-title 
a:visited {text-decoration:none;}#yiv5387095506 div.yiv5387095506photo-title a, 
#yiv5387095506 div.yiv5387095506photo-title a:active, #yiv5387095506 
div.yiv5387095506photo-title a:hover, #yiv5387095506 
div.yiv5387095506photo-title a:visited {text-

[oracle_br] Re: UTL_FILE.FFLUSH

2016-08-26 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Bom, eu nunca vi (ou se vi não me recordo), mas antes de mais nada, uma 
pergunta : pra variar vc ** não diz ** mas eu SUPONHO que vc está gravando 
arquivos Binários ou ao menos rich-text com caracteres de controle, confere ? 
Pois esse é um dos ** POUCOS ** casos onde se usa FFLUSH, se vc arquivo-texto 
ASCII padrão se usaria é UTL_FILE.PUT_LINE para gravar no arquivo, já que 
arquivos-texto ascii por padrão terminam com uma sequência de caracteres de fim 
de linha...
 Sendo isso, antes de pensar em possíveis bugs (opção Possível, que vc pode e 
vai perseguir com o Suporte), num primeiro momento eu Indicaria primeiro checar 
a lógica dessa rotina, e tentar escrever um caso-exemplo menor mas onde o erro 
se reproduza : como ao gravar binários é você que está no controle de tamanho 
de buffer e de manipulação, não é impossível que simplesmente seja erro na sua 
implementação - EM ESPECIAL, veja na documentação que a UTL_FILE tem *** limite 
*** (32kb iirc) para o buffer, tem limites para qtdade máxima de chamadas PUT 
antes que o buffer seja gravado Não é difícil simplesmente vc estar vendo 
aí o resultado de má-programação violando algum desses limites... Ou mesmo 
erros básicos, como o BUFFER não declarado como variável RAW e sim como 
string...
  Se conseguir montar uma versão ** menor ** (incluindo o CREATE TABLE e uns 
INSERTs pra gente tentar reproduzir) que aconteça o erro, manda pra gente aqui 
no Grupo que a gente dá uma pescoçada...
  
  []s
  
Chiappa