IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類(lèi)|軟件專(zhuān)題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁(yè)數(shù)據(jù)庫(kù)Oracle → Oracle和SQLServer存儲(chǔ)調(diào)試和出錯(cuò)處理

Oracle和SQLServer存儲(chǔ)調(diào)試和出錯(cuò)處理

時(shí)間:2015/6/28來(lái)源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評(píng)論(0)

  在大型數(shù)據(jù)庫(kù)中,因?yàn)殚_(kāi)發(fā)的需要,經(jīng)常需要調(diào)用Procedure。在oracle和SQLServer上開(kāi)發(fā)Procedure因?yàn)檎Z(yǔ)法不同,而有所區(qū)別;調(diào)試Procedure,在兩個(gè)系統(tǒng)上都不太容易,尤其是進(jìn)行錯(cuò)誤處理時(shí)更是如此。

  首先說(shuō)調(diào)試:

  1. 對(duì)于Oracle的調(diào)試,可以借助于第三方的工具,比如Pl/SQL Developer,以6.0.5.926版本為例,首先對(duì)該P(yáng)rocedure右鍵處理,添加"add debug information",然后選擇"test",打開(kāi)新的測(cè)試窗口,在下方對(duì)應(yīng)的輸入輸出變量處,添加相應(yīng)的測(cè)試數(shù)據(jù)。注意:這里的數(shù)據(jù)輸入,不需要引號(hào),輸出參數(shù)不需要輸入!

  然后點(diǎn)擊"start debugger",或者按F9進(jìn)行測(cè)試,可以選擇測(cè)試的步驟如"step into"等,然后可以在下面的script窗口看到中間變量。

  2. 對(duì)于SQLServer調(diào)試,在沒(méi)有找到較好的第三方工具的情況下,目前采用的是將中間的變量值或者SQL語(yǔ)句插入到另一個(gè)表中,或者直接print出來(lái)的方式。第一種需要借助 exec('') 方法,注意里面的取變量值的寫(xiě)法,可參考下面的例子:

  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中,需要注意類(lèi)型的轉(zhuǎn)換,一般是借用 convert(varchar(11),@spNOTo) 方法來(lái)實(shí)現(xiàn),否則會(huì)提示類(lèi)型轉(zhuǎn)換錯(cuò)誤。

  3. 錯(cuò)誤處理上,對(duì)于SQLServer可以采用開(kāi)始自定義變量,然后根據(jù)不同判斷,改變?cè)撝翟偻瞥龅姆椒▉?lái)處理,見(jiàn)下例:

  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

  或者是對(duì)該錯(cuò)誤全局變量 @@error 數(shù)值的判斷上。

關(guān)鍵詞標(biāo)簽:Oracle,SQLServer

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門(mén)文章 Oracle中使用alter table來(lái)增加,刪除,修改列Oracle中使用alter table來(lái)增加,刪除,修改列oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修使用低權(quán)限Oracle數(shù)據(jù)庫(kù)賬戶(hù)得到管理員權(quán)限使用低權(quán)限Oracle數(shù)據(jù)庫(kù)賬戶(hù)得到管理員權(quán)限Oracle對(duì)user的訪(fǎng)問(wèn)控制Oracle對(duì)user的訪(fǎng)問(wèn)控制

相關(guān)下載

人氣排行 ORACLE SQL 判斷字符串是否為數(shù)字的語(yǔ)句Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法ORACLE和SQL語(yǔ)法區(qū)別歸納(1)oracle grant 授權(quán)語(yǔ)句如何加速Oracle大批量數(shù)據(jù)處理Oracle刪除表的幾種方法ORACLE修改IP地址后如何能夠使用Oracle 10g創(chuàng)建表空間和用戶(hù)并指定權(quán)限