3

我在 Oracle 中运行以下块(它的作用不是那么重要)

BEGIN
  SDO_RDF_INFERENCE.CREATE_RULES_INDEX(
    'my_index',
    SDO_RDF_Models('my_model'),
    SDO_RDF_Rulebases('RDFS'));
END;

并得到以下错误:

ORA-29532: Java call terminated by uncaught Java exception: java.lang.NullPointerException
ORA-06512: at "MDSYS.RDF_APIS_USER", line 7
ORA-06512: at "MDSYS.RDF_APIS_USER", line 9
ORA-06512: at "MDSYS.RDF_APIS", line 477
ORA-06512: at line 2
29532. 00000 -  "Java call terminated by uncaught Java exception: %s"
*Cause:    A Java exception or error was signaled and could not be
           resolved by the Java code.
*Action:   Modify Java code, if this behavior is not intended.

问题:如何访问 Oracle 错误日志或其他内容以获取完整的堆栈跟踪或有关异常的任何其他信息。

4

3 回答 3

1

这没有回答有关如何在日志中查看更多信息的问题,但您可能希望查看错误的一些可能原因。通常是因为您没有被授予对您尝试访问的 Oracle 对象的权限。

于 2011-07-07T23:25:34.240 回答
1

通常只有 DBA 具有查看 Oracle 日志的基本权限。但是,如果你有足够的权利:

select value from v$parameter t
where t.NAME='background_dump_dest'

此查询将返回 Oracle 服务器机器上的 Oracle 警报日志和 trace\dump 文件的文件路径。警报日志 (Alert_"databasename".log) 按时间顺序记录消息和错误,并包含指向与其关联的 trace\dump 文件的指针。

您还可以使用 Oracle Enterprise Management Console 在目标数据库中的“警报日志内容”链接之后查看 alert_.log。

于 2011-07-08T00:18:06.457 回答
1

在调用失败的存储过程之前,尝试在您的 Oracle SQL 会话中执行此语句:

dbms_java.set_output(32000);

它将导致 Oracle JVM 将 Java 堆栈跟踪附加到 DBMS 输出,然后您可以更详细地检查它。

于 2014-05-29T10:57:29.493 回答