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

您當前所在位置: 首頁數(shù)據(jù)庫Oracle → Oracle和SQLServer存儲調試和出錯處理

Oracle和SQLServer存儲調試和出錯處理

時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)

  在大型數(shù)據(jù)庫中,因為開發(fā)的需要,經(jīng)常需要調用Procedure。在Oracle和SQLServer上開發(fā)Procedure因為語法不同,而有所區(qū)別;調試Procedure,在兩個系統(tǒng)上都不太容易,尤其是進行錯誤處理時更是如此。

  首先說調試:

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

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

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

  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) 方法來實現(xiàn),否則會提示類型轉換錯誤。

  3. 錯誤處理上,對于SQLServer可以采用開始自定義變量,然后根據(jù)不同判斷,改變該值再推出的方法來處理,見下例:

  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 數(shù)值的判斷上。

關鍵詞標簽:Oracle,SQLServer

相關閱讀

文章評論
發(fā)表評論

熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實例的控制文件 誤刪Oracle數(shù)據(jù)庫實例的控制文件 為UNIX服務器設置Oracle全文檢索 為UNIX服務器設置Oracle全文檢索

相關下載

    人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法