我正在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错误日志或其他内容以获取完整堆栈跟踪或任何其他有关异常的信息。
答案 0 :(得分:1)
这不回答有关如何在日志中查看更多信息的问题,但您可能需要查看this以查找错误的可能原因。通常是因为您没有被授予您尝试访问的Oracle对象的权限。
答案 1 :(得分:1)
通常只有DBA拥有查看Oracle日志的基本权限。 但是,如果你有足够的权利:
select value from v$parameter t
where t.NAME='background_dump_dest'
此查询将返回Oracle Server机器上的Oracle警报日志和trace \ dump文件的文件路径。 警报日志(Alert_“databasename”.log)按时间顺序记录消息和错误,并包含指向跟踪它们的跟踪转储文件的指针。
您还可以在目标数据库中的“警报日志内容”链接后使用Oracle Enterprise Managment Console查看alert_.log。
答案 2 :(得分:1)
尝试在调用失败的存储过程之前在Oracle SQL会话中执行此语句:
dbms_java.set_output(32000);
它将使Oracle JVM将Java堆栈跟踪附加到DBMS输出,然后您可以更详细地检查它。