天地不仁,以万物为刍狗!

关于10g以下dbms_output.put_line超长的问题

上一篇 / 下一篇  2007-06-26 00:00:00 / 个人分类:oracle

关于10g以下dbms_output.put_line超长的问题

对于10gdbms_output.put_line的长度是没有限制
*tj+V s%o;x VG0如果报错:buffer overflow,执行如下语句即可:ITPUB个人空间/V,d,OA5e}
set serveroutput ON SIZE UNLIMITED FORMAT WORD_WRAPPEDITPUB个人空间!A8q L&z^4J
由于10g以下dbms_output.put_line的长度有限制
g:vpBwK0所以今天特意写了一个按照回车符来截取字符串,也就是按行截取,然后打印出来的过程,希望对某些人有用!


1N9yVPq6t {8Sa0create or replace procedure print_proc(str in varchar2) isITPUB个人空间 n:G y#y#cFV
/*
5tf,~)kj@u0 --打印字符串,调试的时候用
mE1E2o1s x0 --由于字符串过长,超过了dbms_output.put_line的长度,故采用本程序分行打印出来ITPUB个人空间F3m?Y+cOT1g[
--@auther:Z.X.TITPUB个人空间0J5Uz9n8{#O\
--@date:2007-6-26
([$vB:I)[;HRs0 */ITPUB个人空间 p%We/f8cV
beginITPUB个人空间z.ToEq
dbms_output.put_line('lengthb(str) =' || lengthb(str));ITPUB个人空间0Dy*nU1PI'G
if (lengthb(str) < 255) then
uga+ExO G3D3^ s0 dbms_output.put_line(str);ITPUB个人空间j _.^ fYq
elseITPUB个人空间R-w$w s%v0x*pwM.s
for i in 1 .. length(str) - length(replace(str, chr(10))) + 1ITPUB个人空间 n R2kf+R+@H
loop
c ~Na s"gN0 dbms_output.put_line(substr(str, instr(chr(10) || str, chr(10), 1, i), instr(str ||ITPUB个人空间vz}$X0H_)u&xL
chr(10), chr(10), 1, i) -
S[WX"\A4ne$E`Q0 instr(chr(10) || str, chr(10), 1, i)));
WoN6PaF0 end loop;
+dX yL5Yb0 end if;
F1F1_KO0exceptionITPUB个人空间k|%{Cz-^C^|`
when others thenITPUB个人空间m!o5l;gF
dbms_output.put_line(sqlerrm);
{Me;ax,Y7Gw0 dbms_output.put_line(dbms_utility.format_call_stack);ITPUB个人空间5CL0k2jP-_K V
end print_proc;


v3b{(Io `0


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-11-24  
      1
2345678
9101112131415
16171819202122
23242526272829
30      

数据统计

  • 访问量: 12228
  • 日志数: 273
  • 图片数: 1
  • 文件数: 2
  • 建立时间: 2007-12-01
  • 更新时间: 2008-11-19

RSS订阅

Open Toolbar