3

我的 Oracle 数据库上有一个包,我已经为调试编译它并在其中设置断点。从 SQL Developer 中,我可以按 ctrl+shift+F10 来运行调试并选择我要运行的过程。这一切都很好。

是否可以捕获运行此包并达到我的断点的任何实例?例如,如果我们的 C# 应用程序中的用户单击一个按钮,它会调用此包中的一个过程。我希望 SQL Developer 打破该过程,让我使用应用程序提供的参数逐步完成包。

4

2 回答 2

2

根据SQL Developer Documentation,您应该能够使用远程调试来调试单个会话,但是您必须更改您的客户端应用程序,以便它调用 PL/SQL 过程来预先初始化调试。

于 2013-01-08T15:26:28.063 回答
-1

怎么办???

与其寻找如何捕获运行此过程的实例,不如关注如何通过将异常块添加到包中的过程来捕获过程引发的错误。

例如添加

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

因此,如果发生任何错误,它将插入异常,并将在 error_table 中插入一条记录。

问候

于 2013-01-08T15:56:35.507 回答