【问题标题】:Not able to debug the PL/SQL Procedure in SQL Developer?无法在 SQL Developer 中调试 PL/SQL 过程?
【发布时间】:2021-11-08 03:20:27
【问题描述】:

我可以在 SQL Developer 中运行 PL/SQL 过程吗?

PL/SQL 过程

create or replace PROCEDURE greetings 
AS 
BEGIN 
   dbms_output.put_line('Hello World!'); 
END; 

这是数据库日志:

Connecting to the database Oracle_XXXX.
Hello World!
Process exited.
Disconnecting from the database Oracle_XXXX.

但我无法调试 PL/SQL 过程并获取错误日志?

这是错误数据库日志:

Connecting to the database Oracle_XXXX.
Executing PL/SQL: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( '127.0.0.1', '63717' )
ORA-24247: network access denied by access control list (ACL)
ORA-06512: at "SYS.DBMS_DEBUG_JDWP", line 68
ORA-06512: at line 1
Process exited.
Disconnecting from the database Oracle_XXXX.

谁能建议我如何解决这个问题?

【问题讨论】:

  • 我无法回答网络访问问题,但您的测试程序中没有任何要调试的内容,因此当您让调试器工作时,它不会做任何事情。我建议添加一个变量并为其赋值。
  • 至少应该停在 dbms_output.put_line('Hello World!');当我将断点放在这里时。
  • @WilliamRobertson 我想摆脱这个问题。 "SYS.DBMS_DEBUG_JDWP"
  • 老实说,我从未见过有人成功使用远程调试器,尽管它被认为是主要支持的调试器,而且我一直使用的旧 dbms_debug 受到限制且已弃用。我希望有人也可以回答。

标签: oracle plsql oracle-sqldeveloper oracle18c


【解决方案1】:
Connecting to the database Oracle_XXXX.
Executing PL/SQL: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( '127.0.0.1', '63717' )
ORA-24247: network access denied by access control list (ACL)

这是从数据库返回的错误。

这就是说,在 PL/SQL 中,您正试图在 63717 端口上连接到 127.0.01,但我们不允许来自数据库的出站网络活动。

要让默认调试器在 SQL Developer 中工作,您需要定义访问控制列表 (ACL) 规则。

您可以完成这个过程,或者您可以使用 DBMS_DEBUG 调试器 API,它让 SQL Developer 建立第二个数据库连接来进行调试,而不是让数据库连接回您的客户端。

我在这里有两种方法/路线的说明 https://www.thatjeffsmith.com/archive/2015/06/everything-you-ever-wanted-to-know-about-the-plsql-debugger/

对于 ACL,我真的很喜欢 Galo 的帖子 https://galobalda.wordpress.com/2014/02/17/sql-developers-plsql-debugger-and-oracle-12c/

【讨论】:

  • 非常感谢史密斯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 1970-01-01
相关资源
最近更新 更多