【发布时间】:2013-05-04 19:15:05
【问题描述】:
我尝试通过dbms_output 调试我的动态查询,但似乎查询字符串对于dbms_output 缓冲区来说太长了。
我明白了:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "SYS.DBMS_OUTPUT", line 148
ORA-06512: at line 1
知道如何增加缓冲区大小吗?
【问题讨论】:
-
您可能正在使用 dbms_output 写入太多信息。它不是为此而设计的。您最好的选择可能是将这些消息插入到表格中,然后从表格中选择
-
@a_horse_with_no_name:我从不赞成使用数据库表作为应用程序日志,因为可能会发生无法记录的事件:例如,如果应用程序无法连接到数据库,您在哪里记录以下事实如果日志在您无法连接的数据库中,应用程序无法连接?我更喜欢将日志写入平面文件(使用 PL/SQL 中的 UTL_FILE 包),与数据库中的表相比,IMO 不太可能不可用。 YMMV。分享和享受。
-
@BobJarvis:在 PL/SQL 过程中,我认为这很有意义。对于常规应用程序代码(Java、C#、...),我同意你的看法。
标签: sql oracle plsql oracle10g dbms-output