在oracle中将长sql输出,类似sql server的print
来源:互联网 发布:无硬件基础学linux 编辑:程序博客网 时间:2024/05/21 17:45
********************************************************************************1、用下面函数就行:例子是给了20000字符 dbms_output.enable(20000);********************************************************************************2、可以用utl_file直接写入到文件里********************************************************************************3、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;********************************************************************************4、用下面的这个存储过程代替你的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 v_sql varchar2(300):=''; v_i number:=1; begin dbms_output.enable(20000); for v_i in 1..256 loop v_sql:=v_sql||'*'; end loop; put_line_unlimit(v_sql); end; /********************************************************************************