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;
你用下面的这个存储过程代替你的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> 当然,你可以自己包装以下,放在一个包里,我就不给你包装了
可以用utl_file直接写入到文件里
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;
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>
当然,你可以自己包装以下,放在一个包里,我就不给你包装了
w_tsinghua和 lynx的方法都试过了都可以非常感谢他们的例子。
也要谢谢Michaelyfj他帮我解答了其他问题。w_tsinghua(40),lynx(40),Michaelyfj(20)