浅析Oracle和SqlServer存储过程的调试、出错处理

6810719wu

6810719wu

2016-02-19 16:44

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享浅析Oracle和SqlServer存储过程的调试、出错处理的教程,热爱PS的朋友们快点看过来吧!

  在大型数据库中,因为开发的需要,经常地需要调用Procedure,开发Procedure在Oracle和Sqlserver上因为语法不同,而有所区别,但是在调试上,都是比较的不容易,尤其是在一些错误处理上。

   首先说调试:

   1。对于Oracle的调试,可以借助于第三方的工具,比如Pl/Sql Developer,我在用的版本是6.0.5.926;首先对该Procedure右键处理,添加“add debug information”,然后选择“test”,打开新的测试窗口,在下方对应的输入输出变量地方,添加相应的测试数据,注意:这里的数据输入,不需要引号,输出参数不需要输入然后点击“start debugger”,或者按F9,进行测试,可以选择测试的步骤如“step into”等,然后可以在下面的script窗口看到,中间变量;
  
   2。对于SqlServer调试,我还没有找到比较好的第三方工具,目前是采用将中间的变量值或者sql语句插入到另一个表中,或者直接print出来的方式。第一种需要借助 exec('') 方法,注意里面的取变量值的写法,可参考下面的例子:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

exec('update SupplyplanLack set Completedate = GetDate()
from supplyPlanLack a where '+ @ssTmp +' and
'+@iCompleteQty+' = (select s.RequestQty * a.RationQty as ReqQty
from Balance a, SupplyPlan s where a.Vehicle = s.Vehicle
and a.Part=s.Part and a.SupplyPlanNo = s.SupplyPlanNo
and '+ @ssTmp +')')

   在print中,需要注意类型的转换,一般是借用 convert(varchar(11),@spNOTo) 方法来实现,否则会提示类型转换错误!

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

   3。错误处理上,对于Sqlserver可以采用开始自定义变量,然后根据不同判断,改变该值然后推出的方法来处理,见下例

set @exec_num=0

if (@spNOFrom=0 or @spNOTo=0 or @reuseUser=NULL)
begin
set @exec_num=1
goto the_end
end

the_end:
return

   或者是这种:

set nocount on

if (@property is null) or (@property = '')
begin
raiserror('Must specify a property name.',-1,-1)
return (1)
end

   或者是对该错误全局变量 @@error 数值的判断上。

展开更多 50%)
分享

猜你喜欢

浅析Oracle和SqlServer存储过程的调试、出错处理

编程语言 网络编程
浅析Oracle和SqlServer存储过程的调试、出错处理

jsp的出错处理

Java JAVA基础
jsp的出错处理

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

分页 SQLServer存储过程

SQLServer
分页 SQLServer存储过程

ASP调用oracle存储过程

ASP
ASP调用oracle存储过程

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

oracle 存储过程的基本语法

编程语言 网络编程
oracle 存储过程的基本语法

oracle 存储过程加密的方法

编程语言 网络编程
oracle 存储过程加密的方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

JSON 入门指南

JSON 入门指南

剩下的路我陪你走完 - QQ伤感分组

剩下的路我陪你走完 - QQ伤感分组
下拉加载更多内容 ↓