2013-10-09 254 views
0

我有一些甲骨文的PL SQL代码,用户尝试使用JBSQL工具增加缓冲区大小

有几个DBMS_OUTPUT线运行 - 当用户运行的代码,他们得到一个错误

ORA-06502: PL/SQL: numeric or value error: character string buffer too small 

如何增加缓冲区大小?

我已经试过

SET SERVEROUTPUT ON SIZE 1000000; 

,但得到 “未知的选项大小”。无论设置缓冲区大小的工具是否有“默认”命令?或者我可以添加任何东西到我的PL/SQL? (最终我会将行写入表格/文本文件,但需要启动并运行此过程以显示它是值得的 - 一切工作都很好 - 只是在最后通知用户的位! )

任何帮助感激地接受

感谢

迈克

回答

1

SET SERVEROUTPUT ON SIZE n;是SQL * Plus命令,但很多编辑器允许使用它。不管怎么说,你可以试试这个:

BEGIN 
    DBMS_OUTPUT.ENABLE(BUFFER_SIZE => 1000000); 
END; 
2

SET SERVEROUTPUT是SQL * Plus命令,它不是一个SQLPL/SQL命令。它只能用于SQL * Plus或类似SQL * Plus的工具(Toad,SQL开发人员...)。

您可以使用DBMS_OUTPUT.enable(buffer_size)来增加默认输出缓冲区大小。但请注意,您的错误可能来自其他地方:ORA-06502是一种通用错误,可以通过变量太小的任何分配来提高。

1

您使用的是什么版本的JBSql?通常,从版本1.1.0.2开始,缓冲区大小从255增加到32767个字符。如果最新版本(1.3.0.0)仍然失败,请提供一个http://duofoto.be/mantis