2013-01-08 20 views
1

我在我的Oracle數據庫上有一個包,用於調試並設置斷點。從SQL Developer中,我可以按ctrl + shift + F10運行調試和選擇我想要運行的程序。這一切工作正常。SQL Developer調試所有調用程序包

是否有可能捕獲運行此包的任何實例並打到我的中斷點?例如,如果我們的C#應用​​程序中的用戶單擊了一個按鈕,它將調用此包中的一個過程。我希望SQL Developer在程序中斷開,讓我通過應用程序提供的參數逐步完成程序包。

回答

1

根據SQL Developer Documentation,您應該能夠使用遠程調試來調試單個會話,但是您必須更改客戶端應用程序,以便它調用PL/SQL過程來預先初始化調試。

0

準備幹什麼?

而不是尋找如何捕捉運行此過程的實例,重點關注如何通過向程序包中的異常塊添加異常塊來捕獲過程中的錯誤throwen。

例如添加

... 
exception 
    when others then 
    insert into error_table(userid, error) values 
    (SYS_CONTEXT ('USERENV', 'TERMINAL') , 
    SQLCODE ||' ' || SQLERRM); 
    commit; 

因此,如果發生任何錯誤,它將插入異常會插入error_table的記錄。

問候

+1

的SQL已經寫在異常。包工作正常,我只是不知道爲什麼它不返回數據的特定位。當你正在處理長度爲10k +的包並由其他人編寫的包時,可以使用調試器對其進行處理。 – Joseph