日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

oracle sql 调试,关于Oracle和SQL存储调试和出错处理

發布時間:2024/9/18 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle sql 调试,关于Oracle和SQL存储调试和出错处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天,小編為大家帶來了新的關于數據庫的內容。在大型數據庫中,因為開發的需要,經常需要調用Procedure。在Oracle和SQLServer上開發Procedure因為語法不同,而有所區別;調試Procedure,在兩個系統上都不太容易,尤其是進行錯誤處理時更是如此。 調試: 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('') 方法,注意oracle數據庫里面的取變量值的寫法,可參考下面的例子:

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中,需要注意類型的轉換,一般是借用 conver 方法來實現,否則會提示類型轉換錯誤。 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

mysql數據庫或者是對該錯誤全局變量 @@error 數值的判斷上。

更多詳情請咨詢課課家官網,了解更多內容.

總結

以上是生活随笔為你收集整理的oracle sql 调试,关于Oracle和SQL存储调试和出错处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。