您当前的位置: 首页 >  sql

qq_34412985

暂无认证

  • 0浏览

    0关注

    1061博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

PL/SQL的Event Monitor代替Output做调试

qq_34412985 发布时间:2019-12-02 13:57:06 ,浏览量:0

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才会发送。

关注
打赏
1653291990
查看更多评论
立即登录/注册

微信扫码登录

0.0406s