浅析oracle和sqlserver存储过程的调试、出错处理.doc

浅析oracle和sqlserver存储过程的调试、出错处理.doc

ID:53298588

大小:72.50 KB

页数:4页

时间:2020-04-03

浅析oracle和sqlserver存储过程的调试、出错处理.doc_第1页
浅析oracle和sqlserver存储过程的调试、出错处理.doc_第2页
浅析oracle和sqlserver存储过程的调试、出错处理.doc_第3页
浅析oracle和sqlserver存储过程的调试、出错处理.doc_第4页
资源描述:

《浅析oracle和sqlserver存储过程的调试、出错处理.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、浅析Oracle和SqlServer存储过程的调试、出错处理关键字:orac1esqlserver存储过程调试出错处理在大型数据库屮,因为开发的需要,经常地需要调用Procedure,开发Procedure在Oracle和Sqlserver上因为语法不同,而有所区别,但是在调试上,都是比较的不容易,尤其是在一些错误处理上。首先说调试:1o对于Oracle的调试,可以借助于第三方的工具,比如Pl/SqlDeveloper,我在用的版本是6.0.5.926;首先对该Procedure右键处理,添加“adddebugin

2、format1011^,然后选择“test”,打开新的测试窗口,在下方对应的输入输出变量地方,添加相应的测试数据,注意:这里的数据输入,不需要引号,输出参数不需要输入然后点击“startdebugger,或者按F9,进行测试,可以选择测试的步骤如“stepinto”等,然后可以在下面的script窗口看到,中间变里;2o对于SqlServer调试,我还没有找到比较好的第三方工具,H前是采用将屮间的变量值或者sql语句插入到另一个表屮,或者直接print出来的方式。第一种需要借助execO方法,注意里面的取变量值的写

3、法,可参考下面的例子:Sql代码£11.exec(OupdateSupplyplanLacksetCompletedste=GetDate()2.2.fromsupplyPlanLackawhere@ssTmpand4.3.©iCompleteQty>二(Oselects.RequestQty*a.RationQtyasReqQty6.4.fromBalancea,SupplyPlanswherea.Vehicle二s.Vehicle8.5.anda.Part二s.Partanda.SupplyPlanNo二s.S

4、upplyPlanNo10.11.and@ssTmp))在print中,需要注意类型的转换,一般是借用convert(varchar(11),@spNOTo)方法来实现,否则会提示类型转换错误!3o错误处理上,对于Sqlserver可以采用开始自定义变量,然后根据不同判断,改变该值然后推出的方法来处理,见下例Sql代码Q1.set@execnum=02.3.if(@spN0From=0or@spN0To=0or@reuseUser=ULL)4.4.begin6.5.set©execnum=l8.6.gotothe

5、end10.7.end12.8.theend:14.9.return或者是这种:Sql代码■1.setnocounton2.2.if(©propertyisnu1I)or(©property=)4.3.begin6.7.raiserror(Mustspecifyapropertyname.,-1,-1)&9.return(1)10.11.end或者是对该错误全局变量©©error数值的判断上。网上资源:调试oracle存储过程PL/SQL屮为我们提供了调试存储过程的功能,可以帮助你完成存储过程的预编译与测试。点击要

6、调试的存储过程,右键选择TEST如果需要查看变量,当然调试都需耍。在右键菜单屮选择Adddebuginformation,startdebugger(F9)JP始我们的测试,Run(Ctrl+R)随时在varibleList屮输入我们想查看的变量其它:Stepinto(Ctrl+N):单步调试,进入下一步Stepover(Ctrl+O):结束该语句Stepout(Ctrl+T):跳出该过程Runtonextexception:进入下个断点BreakpointToggleBreakpoint设置断点:光标指向一行,C

7、trl+B;或鼠标点中该行的行号边缘其他:本人在写存储过程时,不知道如何调试它。有一种调试办法就是在程序屮打印出变量的值,在JAVA屮俺是打印在控制台上的。以下告诉众位如何从在sqlplus上实现。1>sqlplus上执行“setserveroptputon"命令2、在存储过程屮可以用DBMS_OUTPUT.PUTJJNE(VarName);来打印出來给个存储过程的例子:Sql代码J1.createorreplaceproceduretestis2.EmpnameVARCHAR2(10);3.CursorclTSS

8、ELECTEnameFROMEMP4.WHEREDeptno=20;5.BEGIN6.OPENcl;7.LOOP8.FETCHclINTOEmpname;9.EXITWHENcl%NOTFOUND;10.DBMS_OUTPUT.PUT^LINE(Emp.name);11.EXDLOOP;12.endtest;后台建立test这个存储过程,编译它,以scott

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。