您的位置:首页 > 数据库 > SQL

使用PL/SQL Developer的Event Monitor代替Output做调试。

2008-12-24 10:43 232 查看
 PL/SQL Developer里的Event Monitor不知道是什么版本开始加上去的,一直以来都忽视了这个东东,不知道他是干什么的,最近研究DBMS_PIPE才发觉原来它可以在存储过程等调试过程中实时获取调试信息。使用方法很简单,自己创建一个存储过程

PROCEDURE p_message(msg VARCHAR2) AS
  sta NUMBER;
BEGIN
  dbms_pipe.pack_message(msg);
  sta := dbms_pipe.send_message('MyDebug', 60); -- 把打包好的消息发送给名为MyDebug的管道,超时设置为60秒
END;

接用这个p_message代替平时使用的dbms_output.put_line就可以了,在调试程序前打开PL/SQL
Developer里Event Monitor,选择Event Type为DBMS_PIPE,Event
Name填上MyDebug,然后按start开始监听。然后就可以像平常一样运行自己存储过程了,不同的是调试信息是实时显示出来的,而不是像
Output那样要等程序执行完才显示,感觉真是方便多了。

要注意的是,你必须要有DBMS_PIPE的执行权限,有关DBMS_PIPE可以在Oracle文档中找到详细解释,我就没必要翻译了。另外也可以使用DBMS_ALERT,它和DBMS_PIPE最大不同的是它基于事务的,消息要commit才会发送。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  output 存储 oracle 文档