DBMS_OUTPUT 是有缓存区上限的,默认为10000字节,当超过10000后会 抛"buffer overflow, limit of 10000 bytes" 的异常。如下测试存储过程:
- create or replace procedure TestMoreDBMSOutPut(
- countnum IN number,
- logerrdes out varchar2
- )
- is
- PrintStr varchar2(1000);
- begin
- PrintStr := "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111";
-
- for i in 1..countnum loop
- dbms_output.put_line(PrintStr);
- end loop;
- logerrdes := "OK!";
- commit;
- EXCEPTION
- WHEN OTHERS THEN
- rollback;
- logerrdes := "CDM_CTCALLTRACEINFO_PRC_NEW Fail!"||substr(dbms_utility.format_error_stack,1,200);
- commit;
- RETURN;
- end TestMoreDBMSOutPut;
运行测试
解决方案:1. 关闭输出 DBMS_OUTPUT.DISABLE2. 设置很大缓存区 DBMS_OUTPUT.ENABLE(999999999999999999999)Oracle xml数据构建 XMLType相关函数如何运行和调试Oracle存储过程相关资讯 Oracle教程
- Oracle中纯数字的varchar2类型和 (07/29/2015 07:20:43)
- Oracle教程:Oracle中查看DBLink密 (07/29/2015 07:16:55)
- [Oracle] SQL*Loader 详细使用教程 (08/11/2013 21:30:36)
| - Oracle教程:Oracle中kill死锁进程 (07/29/2015 07:18:28)
- Oracle教程:ORA-25153 临时表空间 (07/29/2015 07:13:37)
- Oracle教程之管理安全和资源 (04/08/2013 11:39:32)
|
本文评论 查看全部评论 (0)