Oracle中调试存储过程 :
先说下笨方法:
有一种调试办法就是在程序中打印出变量的值,在JAVA中俺是打印在控制台上的。以下告诉众位如何从在sqlplus上实现。
1、sqlplus 上执行 “set serveroptput on”命令
2、在存储过程中可以用 DBMS_OUTPUT.PUT_LINE(VarName); 来打印出来
给个存储过程的例子:
create or replace procedure test is
Emp_name VARCHAR2(10);
Cursor c1 IS SELECT Ename FROM EMP
WHERE Deptno = 20;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO Emp_name;
EXIT WHEN c1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(Emp_name);
END LOOP;
end test;
后台建立test这个存储过程,编译它,以scott/tiger帐号进入,执行set serveroptput on,然后执行“exec test”
然后说下用工具调试:
下面就把我工作中调试存储过程的方法,简单的说明一下:
调试oracle存储过程
环境: win2003 server oracle9i pl/sql developer 7
调试方法:
1 在pl/sql developer 里右击要调试的存储过程,选择"添加调试信息"命令
2 如果存储过程没有语法错误,右击存储过程,选择"测试"命令
3 在"测试窗口"中安F9,调试(注意如果有输入参数的话,要先给各个参数赋值)
4 "ctrl n"单步调试,调试过程中,将变量名添加到现面的变量列表里按回车键,或者将鼠标放到某个变量的上面,就会看到该变量的值了.
(首先对该Procedure右键处理,添加“add debug information”,然后选择“test”,打开新的测试窗口,在下方对应的输入输出变量地方,添加相应的测试数据,注意:这里的数据输入,不需要引号,输出参数不需要输入然后点击“start debugger”,或者按F9,进行测试,可以选择测试的步骤如“step into”等,然后可以在下面的script窗口看到,中间变量;)
在PL/SQL Developer中调试存储过程的时候如何查看存储过程中定义的变量的值?
在调度的过程中,点中变量,右键有[Add variable to Watch],然后在下面变量窗口就可以看值了!
调试sql server存储过程
环境: win 2003 server sql server 2000(带查询分析器 啊)
微软的东西界面就是比较友好,操作数据库用不着借助第三方工具
调试方法:
1 打开查询分析器
2 选中要调试的存储过程,右击"调试"
3 输入参数,如果有的话
4 "执行", 哇,简直就和VC的调试界面一个样,(再次对微软进行点名表扬啊^_^)剩下的就不用说了吧
补充一句:
以前在别的机器上,曾经遇到过不能调试的问题,查看系统日志,意思是说用户权限不够什么的,当时解决的方法是用系统管理员的帐户启动sql server的服务(在"服务"里设置),然后再用同样的帐户登录系统调试,就OK了
至于DB2以前用过一次,用的是第三方的工具quest centrol来操作数据库,这个工具的友好性比DB2官方的管理工具让我说的话强了可不止百倍,不过当时也没有搞清楚怎么调试存储过程,后来也没有再接触DB2,也就不了了之了,有谁知道的话,一定要告诉我一声啊