dbms_output.put_line - limit of 255 chars

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Renan Orati
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 90
Registrado em: Qui, 23 Ago 2007 3:40 pm
Localização: São José do Rio Preto - SP

Bom dia.... beleza povo???

seguinte... eu estou tentando mostrar, utilizando o dbms_output.put_line, um campo que é do tipo text... é um campo que possui muitos caracteres...

ó... o que eu to tentanu fazer é isso:

Selecionar tudo

CL;

SET SERVEROUTPUT ON SIZE 100000;

DECLARE
  CURSOR TESTE IS
         SELECT T.TRIGGER_BODY, T.TRIGGER_NAME
         FROM ALL_TRIGGERS T
         WHERE T.TABLE_NAME = 'TSTAUDITORIA';

BEGIN

  FOR RG IN TESTE LOOP
      dbms_output.put_line(RG.TRIGGER_NAME||CHR(13)||' - '||RG.TRIGGER_BODY);
  END LOOP;

END;
/

SET SERVEROUTPUT ON SIZE 2000;
dae ele da o seguinte erro:

Selecionar tudo

ORA-20000: ORU-10028: line length overflow, limit of 255 chars per line
ORA-06512: em "SYS.DBMS_OUTPUT", line 35
ORA-06512: em "SYS.DBMS_OUTPUT", line 133
ORA-06512: em line 11

alguém sabe uma solução pra isso??

rsrs... vlw!
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

E ai Renan beleza?

cara, infelizmente não tem como ultrapassar esse limite de 255 caracteres.... a unica opção nesse caso seria utilizar o substring e quebrar a linha em pedaços e exibir no máximo 255 caracteres por vez...


[]'s!!
Renan Orati
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 90
Registrado em: Qui, 23 Ago 2007 3:40 pm
Localização: São José do Rio Preto - SP

aí kara... vlw!!

eu percebi mesmo que nem nos sites dus gringo não tem nada que fale sobre almentar isso... tem umas gambiarras por ai... mais é phoda!... quebra a linha no meio e tals... rsrsrs

eu resolvi o meu problema... utilizei o FORMS e enviei as mensagens em um "item de texto" do tipo "Extenso"...
rsrsrs...

mas vlw ai a atenção! falou!!
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

O Tom Kyte tem uma procedure que faz a "quebra" e exibe linha por linha:
Aí vai:

Selecionar tudo

P is just a little procedure I use to print things out nicer then dbms_output 
would.  I use it below to dump the dynamically generated query so we can see 
what was built for each execution.  It is not really relevant to the example, 
just part of the demonstration... 


SQL> create or replace 
     procedure p ( p_str in varchar2 ) 
  2  is 
  3     l_str   long := p_str || chr(10); 
  4     l_piece long; 
  5     n       number; 
  6  begin 
  7      loop 
  8          exit when l_str is null; 
  9          n := instr( l_str, chr(10) ); 
 10          l_piece := substr( l_str, 1, n-1 ); 
 11          l_str   := substr( l_str, n+1 ); 
 12             loop 
 13                exit when l_piece is null; 
 14                dbms_output.put_line( substr( l_piece, 1, 
                                                        250 ) ); 
 15                l_piece := substr( l_piece, 251 ); 
 16          end loop; 
 17     end loop; 
 18  end; 
 19  / 

Procedure created. 

Responder
  • Informação