如何在 Oracle 中调试 Java 存储过程

Posted

技术标签:

【中文标题】如何在 Oracle 中调试 Java 存储过程【英文标题】:How to debug Java Stored Procedures in Oracle 【发布时间】:2011-04-14 15:52:44 【问题描述】:

我有一个带有存储 java 过程的 Oracle Db,我会在这里加载新过程。

我希望能够使用与将应用服务器设置为调试模式相同的调试方法来调试这些 java 程序。

有可能吗?我该怎么做?

谢谢

【问题讨论】:

【参考方案1】:

Oracle JDeveloper 支持调试 java 存储过程。您需要使用 -g 选项编译 java 类,以便在类文件中生成调试信息,即

javac $JAVA_OPTS -g file_names

之后,您需要编写一个虚拟的 pl/sql 包过程来调用这个 java 存储过程。然后右键单击 pl/sql 过程名称并选择“调试”。

之后,您可以单步调试 pl/sql 和 java 代码,就像调试常规 java 类一样。由于您使用 -g 选项编译了 java 类,因此您可以查看变量、评估表达式等。如果您没有使用 -g 选项,您仍然可以在调试器中单步执行代码,但您不会能够观察变量/表达式。

【讨论】:

【参考方案2】:

我想你会想要使用JDeveloper,你也可以用它来调试应用服务器。它不如任何其他 IDE 好,但它对于调试任务来说足够好。

【讨论】:

【参考方案3】:

另一种选择是使用Java Logging framework。

然后您可以将 logging.properties 和您指定的 Handler 复制到文件夹 ORACLE_HOME/javavm/lib 中

【讨论】:

以上是关于如何在 Oracle 中调试 Java 存储过程的主要内容,如果未能解决你的问题,请参考以下文章

oracle中怎么执行带有输出参数的存储过程,在程序中我知道怎么调用,

如何调试不会在 Oracle 中构建的存储过程? [关闭]

oracle如何调试存储过程

请问如何用c++ 调用oracle存储过程?

oracle存储过程提示编译完成但存在错误,如何查看错误

oracle数据库调用存储过程