国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

Oracle和SQL Server存儲調(diào)試和出錯處理

2024-08-31 00:52:06
字體:
供稿:網(wǎng)友

  在大型數(shù)據(jù)庫中,因為開發(fā)的需要,經(jīng)常需要調(diào)用PRocedure。在Oracle和SQLServer上開發(fā)Procedure因為語法不同,而有所區(qū)別;調(diào)試Procedure,在兩個系統(tǒng)上都不太輕易,尤其是進行錯誤處理時更是如此。
  
  首先說調(diào)試:
  
  1. 對于Oracle的調(diào)試,可以借助于第三方的工具,比如Pl/SQL Developer,以6.0.5.926版本為例,首先對該Procedure右鍵處理,添加“add debug information”,然后選擇“test”,打開新的測試窗口,在下方對應(yīng)的輸入輸出變量處,添加相應(yīng)的測試數(shù)據(jù)。注重:這里的數(shù)據(jù)輸入,不需要引號,輸出參數(shù)不需要輸入!
  
  然后點擊“start debugger”,或者按F9進行測試,可以選擇測試的步驟如“step into”等,然后可以在下面的script窗口看到中間變量。
  
  2. 對于SQLServer調(diào)試,在沒有找到較好的第三方工具的情況下,目前采用的是將中間的變量值或者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中,需要注重類型的轉(zhuǎn)換,一般是借用 convert(varchar(11),@spNOTo) 方法來實現(xiàn),否則會提示類型轉(zhuǎ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ù)值的判定上。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 武功县| 建阳市| 宜宾县| 邓州市| 西和县| 青岛市| 类乌齐县| 南郑县| 资溪县| 英超| 海南省| 长丰县| 高台县| 天等县| 恭城| 鹤岗市| 响水县| 石狮市| 水城县| 阿克| 瑞丽市| 若尔盖县| 南郑县| 威海市| 南宫市| 慈利县| 湟中县| 秦皇岛市| 浑源县| 尉犁县| 江永县| 张家港市| 岗巴县| 天津市| 许昌市| 麻栗坡县| 兴业县| 宣恩县| 永嘉县| 河东区| 桐梓县|