用下面函数就行:例子是给了20000字符
dbms_output.enable(20000); 

解决方案 »

  1.   


    可以用utl_file直接写入到文件里
      

  2.   

    declare
       lineCount INTEGER;
       i INTEGER;
       initStr Varchar2(4000);
    BEGIN
       initStr:=initStr();  --获得你要输出的字符串
       lineCount := ceil(length(initStr)/255);
       dbms_output.put_line('Length:'||to_char(length(initStr)));
     FOR i IN 1..lineCount LOOP
         dbms_output.put_line('-------i--------:'||to_char(i));
         dbms_output.put_line(substr(initStr,1 + 255 * (i - 1),255));
     END LOOP;
    END;
      

  3.   

    你用下面的这个存储过程代替你的dbms_output.put_line()
    create or replace procedure put_line_unlimit( p_string in varchar2 )
    is
       l_string long default p_string;
    begin
       loop
         exit when l_string is null;
         dbms_output.put_line( substr( l_string, 1, 250 ) );
         l_string := substr( l_string, 251 );
       end loop;
    end;
    例如:SQL> declare
      2  v_sql  varchar2(300):='';
      3  v_i  number:=1;
      4  begin
      5       dbms_output.enable(20000);
      6       for v_i in 1..256 loop
      7           v_sql:=v_sql||'*';
      8       end loop;
      9       put_line_unlimit(v_sql);
     10  end;
     11  /
    **********************************************************************************************************************************************************************************************************************************************************
    ******PL/SQL 过程已成功完成。SQL>
    当然,你可以自己包装以下,放在一个包里,我就不给你包装了
      

  4.   

    谢谢大家的帮忙。
     w_tsinghua和 lynx的方法都试过了都可以非常感谢他们的例子。
    也要谢谢Michaelyfj他帮我解答了其他问题。w_tsinghua(40),lynx(40),Michaelyfj(20)