远程调试 PL/SQL 个包
Remote debug PL/SQL packages
假设我有一个 运行 java 网络应用程序,我试图在其中保存一些数据,使用 JDBC 调用 PL/SQL 包数据库。
在java代码中,调用了execute()函数,将要保存的数据发送到数据库中的PL/SQL包中,该包会对数据进行处理,最终保存它。
有没有办法使用 Oracle SQL Developer 或 PL/SQL Developer 即时调试调用的 PL/SQL 包,做这些 IDE 的支持这样的远程调试功能?
您正在寻找的是 Oracle SQL Developer 中提供的远程调试 功能。
需要满足几个先决条件:
- 所有你想调试的包都应该编译调试:
alter package SCHEMA.PACKAGE_NAME compile debug;
- 您要从中执行远程调试的模式的用户应该被授予适当的权限:
- 远程用户应该能够 "give a signal" 进行调试
grant execute on SYS.DBMS_DEBUG_JDWP to REMOTE_USER_NAME;
可以访问其 CONNECT_TCP
过程
如果满足这些要求(或者您能够满足),您可以关注例如this entry in Sue Harper's blog (or this article in Oracle blog of the same author, or this one) 以实现您的目标。简而言之:
- 您应该在特定端口上本地启动调试侦听器并设置断点(或设置正确的调试器选项)。
- 远程用户应该 运行
exec DBMS_DEBUG_JDWP.CONNECT_TCP( 'ip-address', port )
在 运行 感兴趣的代码之前,这可以在会话登录触发器上实现。
- 远程调试您的代码。
可能有一些更具体的内容(对于 Oracle,这不仅仅是真实的),但这就是我通常处理它的方式。
我还想提一下 PL/SQL 开发人员不幸 does not support 远程调试(使用 DBMS_DEBUG
包而不是 DBMS_DEBUG_JDWP
),即使在最新版本中也是如此。 oracleSQLDeveloper是写在Java,PL/SQLDeveloper不是,我觉得这是问题的根源。
假设我有一个 运行 java 网络应用程序,我试图在其中保存一些数据,使用 JDBC 调用 PL/SQL 包数据库。
在java代码中,调用了execute()函数,将要保存的数据发送到数据库中的PL/SQL包中,该包会对数据进行处理,最终保存它。
有没有办法使用 Oracle SQL Developer 或 PL/SQL Developer 即时调试调用的 PL/SQL 包,做这些 IDE 的支持这样的远程调试功能?
您正在寻找的是 Oracle SQL Developer 中提供的远程调试 功能。 需要满足几个先决条件:
- 所有你想调试的包都应该编译调试:
alter package SCHEMA.PACKAGE_NAME compile debug;
- 您要从中执行远程调试的模式的用户应该被授予适当的权限:
- 远程用户应该能够 "give a signal" 进行调试
grant execute on SYS.DBMS_DEBUG_JDWP to REMOTE_USER_NAME;
可以访问其CONNECT_TCP
过程
如果满足这些要求(或者您能够满足),您可以关注例如this entry in Sue Harper's blog (or this article in Oracle blog of the same author, or this one) 以实现您的目标。简而言之:
- 您应该在特定端口上本地启动调试侦听器并设置断点(或设置正确的调试器选项)。
- 远程用户应该 运行
exec DBMS_DEBUG_JDWP.CONNECT_TCP( 'ip-address', port )
在 运行 感兴趣的代码之前,这可以在会话登录触发器上实现。 - 远程调试您的代码。
可能有一些更具体的内容(对于 Oracle,这不仅仅是真实的),但这就是我通常处理它的方式。
我还想提一下 PL/SQL 开发人员不幸 does not support 远程调试(使用 DBMS_DEBUG
包而不是 DBMS_DEBUG_JDWP
),即使在最新版本中也是如此。 oracleSQLDeveloper是写在Java,PL/SQLDeveloper不是,我觉得这是问题的根源。