0

我有一些用户尝试使用 JBSQL 工具运行的 Oracle PL?SQL 代码

有一些 dbms_output 行 - 当用户运行代码时,他们会收到错误

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

如何增加缓冲区大小?

我试过了

SET SERVEROUTPUT ON SIZE 1000000;

但得到“未知的选项大小”。无论设置缓冲区大小的工具如何,是否都有“默认”命令?或者我可以在我的 PL/SQL 中添加任何内容吗?

(最终我会将这些行写入表格/文本文件,但需要启动并运行此过程以显示它是值得的 - 一切都工作得很好 - 只是最后通知用户的那一点!!!)

感激地收到任何帮助

谢谢

麦克风

4

3 回答 3

2

SET SERVEROUTPUT是 SQL*Plus 命令,它不是SQLorPL/SQL命令。它仅适用于 SQL*Plus 或类似 SQL*Plus 的工具(Toad、SQL 开发人员...)。

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

于 2013-10-09T13:02:21.353 回答
1

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

于 2013-10-14T18:15:34.720 回答
1

SET SERVEROUTPUT ON SIZE n;是一个 SQL*Plus 命令,但许多编辑器允许使用它。无论如何,你可以试试这个:

BEGIN
  DBMS_OUTPUT.ENABLE(BUFFER_SIZE => 1000000);
END;
于 2013-10-09T13:01:47.567 回答