0

我有一个存储过程,并放置了一些调试消息,例如

call dbms_output.put ('calling clean up on <tableName>');

在调用该过程时,我没有看到这一行。我在工作中使用 Aqua 数据工作室。我在调用 SP 时也做了以下操作

设置 serveroutput on@ 并设置 serveroutput on

但得到像这样的错误

An unexpected token "on@" was found following "set serveroutput ".  Expected tokens may include:  "="

您能否建议如何查看我在 SP 中以日志形式放置的语句?我正在使用“AquaData Studio - 7.0.39”

4

1 回答 1

0

set serveroutput不是 SQL 语句,因此它对 Aqua Data Studio 或任何其他工具毫无意义,除了 IBM DB2 命令行处理器。

什么dbms_output.put是将线存储在dbms_output模块的内部数组中。DB2 工具在执行存储过程后访问该数组并将其内容打印到屏幕上。

您可以通过在存储过程中创建异常处理程序来以某种方式模拟 Aqua Data Studio 中的相同行为,dbms_output.get_lines用于返回线数组,然后使用该数组构建游标unnest()并将游标返回到调用应用程序 (Aqua) .

虽然创建自己的日志存储过程可能更容易,运行一个自治事务,它将日志记录插入到数据库表中,您可以在必要时查询该表。

于 2013-11-19T21:14:46.190 回答