标签:DBMS Monitor PIPE SQL MyDebug Output message Event
转自:http://blog.csdn.net/zlowly/article/details/534143
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才会发送。
标签:DBMS,Monitor,PIPE,SQL,MyDebug,Output,message,Event 来源: https://blog.csdn.net/ytfy12/article/details/120747589
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。