在db2存储过程中打印日志

时间:2013-11-19 19:05:06

标签: db2 db2-luw

我有一个存储过程并且已经放了一些调试消息,比如

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

在调用程序时,我没有看到这一行。我正在使用Aqua数据工作室来完成我的工作。在调用SP

时我也做了以下操作

在@上设置serveroutput并在

上设置serveroutput

但是得到的错误就像

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

请问您如何查看我在SP中作为日志记录的语句?我正在使用“AquaData Studio - 7.0.39”

1 个答案:

答案 0 :(得分:0)

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

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

您可以通过在存储过程中创建异常处理程序来模拟Aqua Data Studio中的相同行为,其中使用dbms_output.get_lines返回行数组,然后使用{{1}从该数组构建游标并将光标返回给调用应用程序(Aqua)。

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