假设我有一个正在运行的java Web应用程序,我正在尝试使用在数据库中调用PL / SQL包的JDBC来保存一些数据。
在java代码中,调用了execute()函数,要保存的数据已经发送到数据库中的PL / SQL包,它将处理数据并最终保存。
有没有办法使用Oracle SQL Developer或PL / SQL Developer动态调试被调用的PL / SQL包,这些IDE是否支持这样的远程调试功能?
答案 0 :(得分:4)
您正在寻找的是Oracle SQL Developer中提供的远程调试功能。 有几个先决条件需要满足:
alter package SCHEMA.PACKAGE_NAME compile debug;
grant execute on SYS.DBMS_DEBUG_JDWP to REMOTE_USER_NAME;
可以访问其CONNECT_TCP
程序如果满足这些要求(或者您能够满足这些要求),您可以遵循以下要求:在Sue Harper的博客中this entry(或同一作者的Oracle博客中的this article,或this one)来实现您的目标。简而言之:
exec DBMS_DEBUG_JDWP.CONNECT_TCP( 'ip-address', port )
,这可以在会话登录触发器上实现。可能有一些更具体的内容(使用Oracle不仅仅是真实的),但这就是我通常处理它的方式。
另外我想提一下PL / SQL Developer不幸does not support远程调试(使用DBMS_DEBUG
包而不是DBMS_DEBUG_JDWP
),即使在最新版本中也是如此。 Oracle SQL Developer是用Java编写的,PL / SQL Developer不是,我认为这是问题的根源。