› Fóruns › Banco de dados Oracle › ORU-10027: buffer overflow, limit of 1000000 bytes
- Este tópico contém 5 respostas, 4 vozes e foi atualizado pela última vez 17 anos atrás por
Leonardo Litz.
-
AutorPosts
-
15 de maio de 2009 às 6:17 pm #86769
leo_jf
ParticipanteBom dia Srs,
Será que alguém poderia me dar um help.
Tenho uma interface que é executada diariamente no unix. Mas acontece que as vezes tem algum erro do programa que faz a chamada, e com isso a interface não é executada. Quando acontece isso tenho um arquivo .txt de, pelo menos, 19000 registros. Quando isso acontece, não consigo executar a interface para atualizar as respectivas tabelas. Dá o
erro:
DECLARE
*
ERROR at line 1:
ORA-20000: ORU-10027: buffer overflow, limit of 1000000 bytes
ORA-06512: at "SYS.DBMS_OUTPUT", line 35
ORA-06512: at "SYS.DBMS_OUTPUT", line 198
ORA-06512: at "SYS.DBMS_OUTPUT", line 139
ORA-06512: at line 103
Alguém saberia como posso resolver esse problema, pois no script que executo já coloquei DBMS_OUTPUT.ENABLE com um valor alto; e ainda continuo com o erro.
Realmente não sei se adianta aumentar toda hora o outputQq ajuda, agradeço.
15 de maio de 2009 às 6:48 pm #86771Leonardo Litz
ParticipanteOlá Chara.
Seguinte, seguindo a especificação do dbms_output:
The maximum size is 1,000,000, the minimum is 2000.
Não é possível fazer um put_line maior que 1.000.000.
Valeu Leonardo Litz.
15 de maio de 2009 às 6:52 pm #86772leo_jf
ParticipanteFala Chara, blz?
Poxa..que chato isso.
Teria que alterar entao para ult_file. Alguém me dá uma dica ai?15 de maio de 2009 às 9:09 pm #86775Manoel872
ParticipanteObs.
Utl_file.Put_line também tem limite então cuidado 32k bytes por linha.Att,
Manoel Jr
15 de maio de 2009 às 9:28 pm #86777Rodrigo Almeida
ParticipanteBom,
Um exemplo clássico.
SQL>
1 declare
2 texto UTL_FILE.FILE_TYPE;
3 begin
4 texto := UTL_FILE.FOPEN ('/u01/ranet','arquivos.txt','w');
5 UTL_FILE.PUT_LINE (texto,'ALMEIDINHA!');
6 UTL_FILE.FCLOSE (texto);
7* end;
Onde,
O parâmetro do banco de dados UTL_FILE_DIR deve estar com /u01/ranet ou simplesmente *.
E /u01/ranet/ é apenas um exemplo de caminho de um servidor.
Abraços,
Rodrigo Almeida16 de maio de 2009 às 12:51 am #86780Leonardo Litz
ParticipanteLeonardo,
como o Manoel disse existe uma limitacao de 32kb por linha na versao 8i, apartir da versao 9i foi incluido um novo parametro na procedure get_line:
len – input buffer length, default is null, max is 32767
logo:
SQL>
1 declare
2 texto UTL_FILE.FILE_TYPE;
3 begin
4 texto := UTL_FILE.FOPEN (‘/u01/ranet’,’arquivos.txt’,’w’);
5 UTL_FILE.GUT_LINE (texto,’ALMEIDINHA!’,32767);
6 UTL_FILE.FCLOSE (texto);
7* end;Vlw Leonardo Litz
-
AutorPosts
- Você deve fazer login para responder a este tópico.
› Fóruns › Banco de dados Oracle › ORU-10027: buffer overflow, limit of 1000000 bytes