[20190118]toad下如何调试存储过程和函数.txt
--//工作需要,需要使用toad调试存储过程和函数,自己以前从来没有调试存储过程和函数的经验,少数的几次还是使用PLSQL develop,
--//使用PLSQL develop很简单,右键选择test,然后输入参数基本就可以了。
--//自己开始试验几次还是不行,google或者百度找到国内的贴子实际上讲解的都非常不清楚。终于找到一个链接:
--//https://blog.toadworld.com/2018/08/16/debugging-pl/sql-code-with-toad-for-oracle
--//上面有图,不过我自己还是费了一点点时间才摸索出来。
1.环境:
SCOTT@test01p> @ ver1
PORT_STRING VERSION BANNER CON_ID
-------------------- ---------- ---------------------------------------------------------------------------- ------
IBMPC/WIN_NT64-9.1.0 12.2.0.1.0 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0
--//toad 版本11.6.0.43.
2.建立如下脚本:
CREATE OR REPLACE FUNCTION SCOTT.get_dept (p_deptno dept.deptno%TYPE)
RETURN dept.dname%TYPE
DETERMINISTIC
IS
l_dname dept.dname%TYPE;
BEGIN
DBMS_LOCK.sleep (1);
SELECT dname
INTO l_dname
FROM dept
WHERE deptno = p_deptno;
RETURN l_dname;
END;
/
--//并且将脚本拷贝粘贴进入,或者在schema browser界面上双击,导入编辑器中。
--//在data grid,query view的显示条上右击选上navigator,breakpints,watches.
3.选择菜单上Debug->trace in,然后出现一个提示:
DO you want to compile referenced objects with
debug information? this processes can take several
seconds.
--//选择Yes。然后出现set parameters and Execute窗口,输入调试参数。比如我的测试例子P_DEPTNO=20,然后选择EXECUTE。
--//后面的步骤就简单了,可以选择step over,trace in,trace out,run to cursor等等。
--//可以在breakpoints下设置断点。
--//在watches上查看一些变量值,简单一点选上Enable Smart Watches.
4.我感觉自己开始找不到可能受PLSQL develop的影响.
--//它右击选择test,出现的内容如下:
begin
-- Call the function
:result := get_dept(p_deptno => :p_deptno);
end;
5.顺便贴一个图.