PL/SQL進行debug 包以及儲存過程
這兩天在學習PL/SQL,雖然和MySQL大部分sql語句相似,並且儲存過程等相關寫法也很相似。但是畢竟是新接觸的,難免會遇到各種初學者都會遇到的問題。本文主要講解當執行sql指令碼提示錯誤時,該如何去查錯誤以及debug技巧。提高開發效率。
包的寫法以及使用
oracle裡面有包(package)一說,其意思就相當於Java裡面的類,package裡面可以定義全域性變數,儲存過程(procedure),方法(function)等等。
下面看一個簡單例子:
簡單例子
在oracle中,一個package,包括兩部分,包頭,以及包體(body),並且兩部分需要分開編譯(compile),否則會報錯。
包頭:
create or replace package anLA7856 is
procedure m_test;
end;
包體(body):
create or replace package body anLA7856 is
procedure m_test is
world varchar2(20):='hello oracle!';
begin
dbms_output.put_line(world);
end;
end;
以上內容便是包頭和包體,你可以把這兩部分寫到同一個sql檔案中,但是要分開編譯。先編譯包頭,再編譯包體。
通常,我們是先選擇包頭程式碼,然後執行,再選擇包體程式碼,再執行,但是呢,再PL/SQL中,直接這樣,不管成功或者失敗,都是不會報錯的,你需要開啟右側的Objects欄,去檢視Packages和Package bodies,這樣如果有錯誤,會在相應的包上有把×
如上圖所示,anla7856包頭包體都是對的,而p_stu兩個都有把×。
此時,如果有×,你就需要右擊包名,選擇Edit,進入到編譯後的包檔案程式碼。
如上圖所示,可以看到下列有出錯資訊,點選就能調到相應行,這樣一來,你就能進行發現錯誤,然後解決錯誤。
測試程式碼
在儲存過程中測試:
declare
begin
anLA7856.m_test();
end;
結果:
debug方法
下面進入重點,如何debug?
首先在剛剛的Object欄目下,選擇一個沒有編譯錯誤的包體,右擊->Edit
然後,在隨意一行下的左側行頭單擊打個斷點
下一步,在Object那個頁面,右擊->Add debug information;
再下一步,新建一個test window,這一步你可以選擇一個待測試的方法或者儲存過程,右擊->test,也能通過file->new test window來實現。,比如上圖,我右擊mquery,然後選擇test。
接著,如果你的儲存過程或方法有傳入引數,則可以再下圖value位置輸入引數:
然後按下F9啟動執行test指令碼,接下來你可以進行下一步,或者進入方法,調到下個斷點等等,就和其他整合開發環境debug方法一致了。
如何檢視變數值?
法一:把滑鼠放在該變數上面即可
法二:在下圖位置將變數名稱輸入,value值就會自動更新:
除錯儲存過程等
除錯儲存過程以及其他程式碼也都相似,在test windows裡面開始除錯即可。
以上就是PL/SQL裡面的debug方法,掌握能極大提高開發效率哦。