【发布时间】:2010-03-18 16:20:32
【问题描述】:
我正在尝试使用以下代码从 oracle 数据库中导出 java 对象的源代码。
DECLARE
blob1 BLOB;
BEGIN
DBMS_LOB.CREATETEMPORARY(blob1, FALSE);
DBMS_JAVA.EXPORT_SOURCE('OBJECTNAME', 'SCHEMANAME', blob1);
END;
每当我尝试运行它时,我都会收到此异常:
oracle.aurora.rdbms.ModifyPermissionException
即使我以 System.任何想法是什么导致了这种情况以及我如何让它发挥作用。
经过深入调查后,它在以 sysdba 和拥有对象的用户身份运行时工作。不幸的是,我正在制作一个程序来转储 Oracle 数据库中的 java 对象,但我不能真正强迫我的用户成为 sysdba 或对象的所有者。
有什么办法可以阻止这个错误?
【问题讨论】:
-
您可能已经尝试过授予执行权限,对吧?我似乎记得有系统无法运行 procs 的问题,因为它们没有 exec privs。看起来很奇怪,但我知道它偶尔会发生。
-
我想是的,尽管我完全有可能弄错了。问题是它似乎正在执行 DBMS_JAVA.EXPORT_SOURCE,但在运行 EXPORT_SOURCE 过程的过程中出现了异常。
-
如果你做了这样的事情,你可能做对了: SQL> connect sys/password SQL> grant execute on dbms_java to system; SQL> 连接系统/密码 SQL> @script (运行你的脚本)
-
好吧,我又做了一次以确保它仍然无法正常工作,所以我想这不是问题。